После обновления SQL поле устанавливается в 0 [PHP / MySQL] - PullRequest
1 голос
/ 11 сентября 2011

Хорошо, я в настоящее время болен, так что, возможно, ответ прямо передо мной, но я сидел здесь в течение последних 4 часов, пытаясь выяснить, почему это происходит.

В основном у меня естьскрипт, который должен обновлять строку в базе данных.Поле, которое я пытаюсь обновить, это 'имя', и оно выглядит так:

// Updating the database with the new name
$name = $this->db->slashes( $this->friends[$row->key] );
$sql = "UPDATE `friends` SET `name` = '" . $name . "' AND `status` = 'updated' WHERE `key` = " . $row->key . " LIMIT 1";
echo '-- Query: ' . $sql . '<br />';
$result2 = $this->db->query( $sql );

if( !$result2 )
     echo mysql_error();

Выходные данные становятся следующими (пример):

-- Query: UPDATE `friends` SET `name` = 'Andrew Johnsson' AND `status` = 'updated' WHERE `key` = 7823583 LIMIT 1

Он не генерировал mysql_errorтаким образом, запрос, похоже, прошел правильно, и, судя по запросу, он должен был просто обновить строку в базе данных, где ключом был номер, и установить новое имя для Эндрю Джонссона, а также установить статус для обновленного.

Однако!После просмотра в базе данных после этого обновления имя этой строки устанавливается в «0».С какой стати это произошло?

Есть идеи, почему это происходит?Кроме того, скажите мне, если вам нужна дополнительная информация, чтобы помочь мне, и я любезно предоставлю ее!

Ответы [ 2 ]

3 голосов
/ 11 сентября 2011

Ваш синтаксис UPDATE неверен.Это должно быть SET name = 'string', status = 'updated' WHERE key ...

В настоящее время вы буквально просите его оценить AND, чтобы определить, каким столбцом имени следует обновить, которыйвот почему вы получаете 0.

0 голосов
/ 11 сентября 2011

Ну, это может быть слишком глупо, но name это строковое поле, верно? Если для него задано какое-либо целочисленное поле, это именно то, что должно произойти: строка анализируется как 0.

Могу поспорить, что это что-то более сложное, чем это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...