Пробовал сделать простой счетчик кликов, не работает. Что не так с моим кодом мусора?
addLike.php
<?php
$requestLikes = "SELECT Likes FROM test1";
$Likes = mysql_query($requestLikes);
$insertToLikes = "INSERT INTO test1 (Likes) VALUES (" . $Likes + 1 . ")";
mysql_query($insertToLikes);
$Likes = mysql_query($requestLikes);
?>
HTML
<button action="/DEMO/PHP/addLike.php" method="post">Yeet
</button>0
<?php
echo '<h1>' . $Likes . '</h1>';
?>
Результат
www.mySite/DEMO/PHP/addLike.php
Fatal error: Uncaught Error: Call to undefined function mysql_query() in /storage/ssd4/786/4680786/public_html/DEMO/PHP/addLike.php:4 Stack trace: #0 {main} thrown in /storage/ssd4/786/4680786/public_html/DEMO/PHP/addLike.php on line 4
и да, я установил соединение с базой данных EDIT: не учитывайте случайное "0" после тега кнопки
<?php
$conn = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
$requestLikes = "SELECT Likes FROM test1";
$LikesQ = mysqli_query($conn, $requestLikes);
$Likes = mysqli_fetch_array($LikesQ);
$x = $Likes[0] + 1;
$insertToLikes = "INSERT INTO test1 (Likes) VALUES ('$x')";
mysqli_query($conn, $insertToLikes);
$y = mysqli_query($conn, $requestLikes);
$output = mysqli_fetch_array($y);
echo "<h1>$output[0]</h1>";
?>
Используйте MYSQLI, пожалуйста
$insertToLikes = "INSERT INTO test1 (Likes) VALUES (". $Likes + 1. ")";
Вы уязвимы для инъекций MySQL, всегда используете подготовленные операторы или mysqli_real_escape_string
mysqli_real_escape_string()
имеет некоторые проблемы с безопасностью в определенных ситуациях. stackoverflow.com/questions/2353666/...
$Likes
присваивается результатуmysql_query
, который возвращает объект . Затем вы делаете$Likes + 1
, но$Likes
не является числом, поэтому вы не можете добавить 1 к нему.