2009-03-22 3 views
1

У меня есть база данных MySQL, с которой я работаю, но когда я пытаюсь обновить строку в ней, она не работает. Вот код обновления, я работаю с:Как обновить строку MySQL в PHP?

mysql_query("UPDATE offtopic SET next = '$insert' WHERE id = '$id'"); 

ответ

5

Прежде всего, вы должны сделать его немного более безопасным:

mysql_query(sprintf("UPDATE offtopic SET next = '%s' WHERE id = '%s'", 
      mysql_real_escape_string($insert), 
      mysql_real_escape_string($id)); 

Теперь ваша id фактически строка, а не числовой? Если его числовое, вы должны иметь достаточно:

mysql_query(sprintf("UPDATE offtopic SET next = '%s' WHERE id = %d", 
      mysql_real_escape_string($insert), $id); 
+0

Первый должен работать, даже если идентификатор является числовым, а также более безопасным - на случай, если кому-то удастся получить не-номера в эту переменную. – Brimstedt

5

вашего синтаксис является правильным, так что это может быть ошибкой с переменными или вашими именами поле.

Попробуйте это:

$sql = "UPDATE offtopic SET next = '$insert' WHERE id = '$id'"; 
if (!mysql_query($sql)) { 
    echo "MySQL Error: " . mysql_error() . "<br />" . $sql; 
} 

Это может показать вам некоторую полезную информацию, чтобы помочь вам отладки.

1

Пожалуйста, для любви в Интернете, не построил SQL запрос самостоятельно. Используйте PDO.