Я новичок в PHP. Я хочу обновить таблицу MySQL с помощью переменных.Обновление Mysqli с использованием переменных
$sql = "UPDATE tableName
SET $variable1='$variable2'
WHERE table_no='$variable3'";
Благодаря
Я новичок в PHP. Я хочу обновить таблицу MySQL с помощью переменных.Обновление Mysqli с использованием переменных
$sql = "UPDATE tableName
SET $variable1='$variable2'
WHERE table_no='$variable3'";
Благодаря
Не используйте mysqli_
. Используйте PDO.
Если вы ИМЕЮТ использовать mysqli_
, использовать подготовленное заявление:
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$smth = $mysqli->prepare('UPDATE tableName SET '.$variable1.'=? WHERE table_no=?');
$smth->bind_param($variable2, $variable3);
Это должно сделать это, хотя я не запустить его. Я призываю вас использовать PDO, хотя:
$conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
$query = $conn->prepare('UPDATE tableName SET '.$variable1.'=A WHERE table_no=B');
$query->bindParam('A', $variable2);
$query->bindParam('B', $variable3);
EDIT
Обновлен раздел mysqli
использовать надлежащий bind_param
синтаксис.
Это не мой нижний предел, который у вас есть, но, похоже, вы его получили из-за этого '$ smth-> bindParam ($ variable2, $ variable3);' который является синтаксисом PDO, а не ' mysqli_'. И недостающая цитата '('UPDATE tableName SET'. $ Variable1. '=? WHERE table_no =?)' –
Синтаксис для 'mysqli_' -' bind_param() 'http://php.net/manual/en/mysqli -stmt.bind-param.php, а не 'bindParam()' http://php.net/manual/en/pdostatement.bindparam.php –
@ Fred-ii-, вы совершенно правы. Обновленный ответ, поэтому я больше не похож на такого идиота :) –
Почему вы не смотрите в документации? Это довольно хорошо объяснено. – spectras
что вы пробовали? – 6339
Я думаю, что ваш запрос обновленного вопроса будет запущен; вы попробовали этот запрос? обновите свой вопрос с помощью эхо-запроса – Prafulla