mysql — обновление базы данных переполнение стека

mysql_query("UPDATE users SET `test` = '$unicornID' where id='$_SESSION[user_id]' ")
or die(mysql_error());

Теперь, когда пользователь нажимает кнопку «Добавить в избранное», эта строка кода обновляет мою базу данных, а также удаляет все старые данные из столбца. test, Какая команда должна, чтобы старые данные не удалялись?

-2

Решение

Я думаю, что вы можете искать, это SQL-запрос «INSERT».

Это было бы что-то вроде;

"INSERT * INTO users WHERE test='$unicornID' and id='$_SESION['user_id']'";

Дайте мне знать, как это происходит. Приветствия.

0

Другие решения

Еще один совет.
Используйте 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-код.

Надеюсь, вы поняли мой и мой код

0

«Обновить» означает, что старая строка данных изменена; если вы хотите сохранить его, вы должны вставить новый. В этом случае я думаю, что вы должны скопировать строку (что можно сделать, используя «insert … select …»), а затем обновить вновь вставленную строку.

0
По вопросам рекламы [email protected]