mysql_query("UPDATE users SET `test` = '$unicornID' where id='$_SESSION[user_id]' ")
or die(mysql_error());
Теперь, когда пользователь нажимает кнопку «Добавить в избранное», эта строка кода обновляет мою базу данных, а также удаляет все старые данные из столбца. test
, Какая команда должна, чтобы старые данные не удалялись?
Я думаю, что вы можете искать, это SQL-запрос «INSERT».
Это было бы что-то вроде;
"INSERT * INTO users WHERE test='$unicornID' and id='$_SESION['user_id']'";
Дайте мне знать, как это происходит. Приветствия.
Еще один совет.
Используйте PDO с подготовленными утверждениями:
$pdo = new PDO(sprintf('mysql:host=%s;dbname=%s', HOST, DATABASE), USER, PASSWORD);
И вставить что-то:
$params = array(':unicornID' => $unicornID, ':id' => $_SESSION['user_id']);
$stmt = $pdo->prepare("INSERT * INTO users WHERE test=:unicornID and id=:id");
$stmt->execute($params);
Старые команды mysql (_query) старые и очень уязвимые, PDO не так уязвим.
Преимущество подготовленных операторов состоит в том, что вы не можете ввести через свои переменные некоторый SQL-код.
Надеюсь, вы поняли мой и мой код
«Обновить» означает, что старая строка данных изменена; если вы хотите сохранить его, вы должны вставить новый. В этом случае я думаю, что вы должны скопировать строку (что можно сделать, используя «insert … select …»), а затем обновить вновь вставленную строку.