2015-10-01 4 views
-5

Я новичок в PHP. Я хочу обновить таблицу MySQL с помощью переменных.Обновление Mysqli с использованием переменных

$sql = "UPDATE tableName 
      SET $variable1='$variable2' 
     WHERE table_no='$variable3'"; 

Благодаря

+2

Почему вы не смотрите в документации? Это довольно хорошо объяснено. – spectras

+0

что вы пробовали? – 6339

+0

Я думаю, что ваш запрос обновленного вопроса будет запущен; вы попробовали этот запрос? обновите свой вопрос с помощью эхо-запроса – Prafulla

ответ

0

Не используйте 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 синтаксис.

+0

Это не мой нижний предел, который у вас есть, но, похоже, вы его получили из-за этого '$ smth-> bindParam ($ variable2, $ variable3);' который является синтаксисом PDO, а не ' mysqli_'. И недостающая цитата '('UPDATE tableName SET'. $ Variable1. '=? WHERE table_no =?)' –

+1

Синтаксис для 'mysqli_' -' bind_param() 'http://php.net/manual/en/mysqli -stmt.bind-param.php, а не 'bindParam()' http://php.net/manual/en/pdostatement.bindparam.php –

+0

@ Fred-ii-, вы совершенно правы. Обновленный ответ, поэтому я больше не похож на такого идиота :) –

Смежные вопросы