2011-06-24 2 views
2
<?php 
. 
. 
. 
mysql_connect($host,$username,$password); 
if (!mysql_select_db($database)) 
    die("Can't select database"); 
$query="UPDATE table SET a='$A', b='$B', c='$C', WHERE id='$ID'"; 

$checkresult = mysql_query($query); 
if ($checkresult) { 
echo "Success"; 
} else { 
echo "Sorry, it failed !"; 
} 
mysql_close(); 
?> 

Сценарий будет редактировать и заменять поле новой информацией, полученной с помощью ввода.заявление об обновлении не действует

Это будет отражать Success, как и ожидалось, но строка не изменилась.

Как это можно исправить?

+0

Откуда возникает переменная $ ID? вы уверены, что это действительный идентификатор? – aporat

+0

@aporat Да, это хорошо, оно исходит из другой формы: $ id = mysql_result ($ result, $ i, "ID"); – virusbogdan

+0

Распечатайте свой запрос, просто выполните echo $ query; Если он по-прежнему выглядит хорошо, если все переменные правильны, запустите напечатанный запрос в phpMyadmin. –

ответ

1

изменить это:

$query="UPDATE table SET a='$A', b='$B', c='$C', WHERE id='$ID'"; 

с этим:

$query="UPDATE table SET a='{$A}', b='{$B}', c='{$C}' WHERE id='{$ID}'"; 
+0

Я пробовал, он не работает! – virusbogdan

+0

add вы можете избежать переменных перед вставкой их в базу данных, используя функцию mysql_real_escape_string() – aporat

+0

Все еще не может заставить ее работать – virusbogdan

0

Там не должно быть запятой перед "где". Но я бы подумал, что это даст вам синтаксическую ошибку, а не вернуть фиктивный успех.

+0

без него такой же. Я не могу найти объяснений, почему это не работает. Должен ли я отправить сообщение, откуда поступают данные? – virusbogdan

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