2015-03-07 7 views
0

Я знаю, что я не должен использовать mysql_query для запроса базы данных, но мне нужно изменить существующий код. Что мне нужно сделать, так это передать переменную php в качестве имени поля sql-запроса. Я стараюсь так:php mysql_query использовать переменную как имя поля

$my_field = "field_name"; 
mysql_query("UPDATE my_table SET ".$my_field." =somevalue") or die(mysql_error()); 

, но я заметил, что это неправильно, потому что в результате запроса

UPDATE my_table SET =somevalue 

Что такое правильный способ сделать это?

+0

Может быть из-за синтаксической ошибки - вам не хватает закрытия '' 'after' = somevalue' – mkorcha

+0

Можете ли вы опубликовать нам ошибку. Используйте error_reporting. Если вы получаете пустую страницу, то в предыдущих строках вы получили синтаксическую ошибку. –

ответ

0

вы пропустили закрывающие кавычки, изменение:

mysql_query("UPDATE my_table SET ".$my_field." =somevalue") or die(mysql_error()); 

для проверки, добавьте инструкцию к переменной и эхо его, как:

$my_field = "field_name"; 
$query = "UPDATE my_table SET ".$my_field." =somevalue"); 
echo $query; //see the output to check if it shows correct statement 
+0

это была только ошибка копирования, у меня есть кавычки (я тоже редактировал мой вопрос) – giozh

+0

@giozh отлично от того, что, кажется, нет никаких проблем с вашим кодом, который вы опубликовали, что может привести к такому выводу. –

+0

странно и для меня, но у меня все еще есть эта проблема – giozh

0

попробовать этот

$my_field = "my_field"; 
$my_value = "my_value; 
$query = "UPDATE my_table SET $my_field=$my_value"); 

php позволяет переменным работать внутри двойных котировок

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