PHP / SQL Простой счетчик кликов

0

Пробовал сделать простой счетчик кликов, не работает. Что не так с моим кодом мусора?

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>'; 
    ?>

Результат Изображение 174551

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" после тега кнопки

  • 0
    $Likes присваивается результату mysql_query , который возвращает объект . Затем вы делаете $Likes + 1 , но $Likes не является числом, поэтому вы не можете добавить 1 к нему.
Теги:
database

1 ответ

3
 <?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

  • 2
    Этот. mysql_ устарел из-за своей небезопасности, mysqli_ - более быстрая и более безопасная версия, которая функционирует очень похожим образом (объясните, пожалуйста, почему используйте MYSQLI )
  • 1
    Вы должны придерживаться подготовленных заявлений. Даже mysqli_real_escape_string() имеет некоторые проблемы с безопасностью в определенных ситуациях. stackoverflow.com/questions/2353666/...
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню