2015-01-17 3 views
-6

Я получаю ошибку, когда я запустил запрос на обновление нижезапрос на обновление не работает

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in on line 94

$x=$row["Q_id"]; 

line94: $sql= mysql_query(" Update `".$td."` set random = concat(ifnull(random,""),".$x.")where Q_id= ".$x." ")or die("Query failed: " . mysql_error()); 
+0

Очевидно, что ваш запрос имеет синтаксические ошибки. Приложите усилия и найдите их, найдите их всех! –

ответ

1

Лучший способ написать это:

$sql = mysql_query(
    "UPDATE `$td` SET random = CONCAT(IFNULL(random, ''), $x) 
    WHERE Q_id = $x" 
) or die("Query failed: " . mysql_error()); 

Изменения:

  • Линейная обертка, поэтому все это можно прочитать за один раз
  • Добавлены переменные непосредственно внутри двойных кавычек, чтобы избежать ненужных конкатенаций строк
  • Switched функции SQL и ключевые слова в верхний регистр
  • своп кавычку внутри SQL для одинарных кавычек, так PHP не думает, что вы прекращение/Начинание строка

Notes, чтобы быть в курсе:

  • Имейте в виду, что инъекционное элементы в SQL без побега может привести к SQL инъекции. Убедитесь, что ваши переменные правильно экранированы.
  • Эта библиотека баз данных устарела, и вы можете переключиться на современную альтернативу, когда сможете.
+0

спасибо, что вы решили проблему –

+0

Отлично, @Naga. Помогли ли последние два пункта? Они относятся к безопасности, поэтому заслуживают внимания. – halfer

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