Не обновляется запись в таблице

Nostie

Новичок
Не обновляется запись в таблице

Доброго времени суток!
Сразу хочу сказать что с php знакома недавно. Поэтому не бейте за тупые вопросы))
У меня возникла проблема на ровном месте. Подобный искала долго... увы если просто не нашла.
Есть табличка, в ней средствами PHPMyAdmin (на хосте имеется) создано несколько записей. Для отладки делала. Запросы Select работают прекрасно, табличка выводится с сортировками, группировками и прочим. А вот теперь мне надо сделать так, чтоб пользователь мог внести изменение в уже существующую запись.
Я пишу скриптик, который не выдает никаких ошибок. Более того, проверяю результат запроса - возвращает истину. Но ничего не меняется в базе. То же самое с удалением и добавлением. Всё красиво, ни на что не ругается ... но и ничего не происходит.
Вопрос: что это такое может быть?
Права пользователя - полные. Поля текстовые.
Сам запрос привожу, хотя уже все мозги свернула... но может свежим взглядом увидите что не так.

PHP:
mysql_query("update NiiProfs set ProfName='".$NewName."', ProfLab='".$NewLab."', ProfCourse='".$NewCourse."', ProfMail='".$NewMail."' where ProfNumber='".$Id."'");
 

kruglov

Новичок
Это не запрос.

Запрос - это сделайте echo вместо query, и запостьте сюда результат. Вот это запрос.
 

WP

^_^
Выполни это:
PHP:
function sqlescape($string)
{
 static $sqlescape = array(
	"\x00"	=> '\x00',
	"\n"	=> '\n',
	"\r"	=> '\r',
	'\\'	=> '\\\\',
	'\''	=> '\\\'',
	'"'	=> '\\"'
 );
 return strtr($string,$sqlescape);
}
$query = 'UPDATE `NiiProfs` SET `ProfName` = \''.sqlescape($NewName).'\', `ProfLab` = \''.sqlescape($NewLab).'\', `ProfCourse`= \''.sqlescape($NewCourse).'\', `ProfMail`= \''.sqlesape($NewMail).'\' WHERE `ProfNumber` = '.intval($Id);
$result = mysql_query($query);
var_dump($query,$result,mysql_error());
P.S. За sqlescape прошу ногами не бить :)
 

kruglov

Новичок
WP
А system('rm- fr /* ') не надо, случайно, выполнить?

p.s. пример специально искажен.
 

Marquis

Новичок
WP
Может все же лучше сначало запрос посмотреть?
и нафига нужна функция sqlescape когда есть mysql_escape_string() ? ;)
 

Gorynych

Посетитель PHP-Клуба
Я пишу скриптик, который не выдает никаких ошибок
где не выдает никаких ошибок? В окне браузера? А кто сказал, что вывод сообщения об ошибках в браузер не отключено? Или не выдет никаких ошибок в лог.ошибок (кстати, он включен или нет?)?

выполнить аналогичный запрос через phpMyAdmin удается?

-~{}~ 11.07.06 13:30:

Marquis
лучше, существенно лучше посмотреть на запрос, уточнить структуру таблицы и т.п. :)
 

WP

^_^
kruglov
В данном случае не надо.
Marquis
А этот код и выдаст запрос, результат, и ошибку если такая присутствует.
Ну, во-первых mysql_real_escape_string, а во-вторых я использую абстрактный СУБД-драйвер самописный, а обращаться для этой частоиспользуемой операции к методу объекта не горю желанием. Тем более еще есть sqlescape_full которая _ и % экранирует.
 

kruglov

Новичок
Gorynych
> выполнить аналогичный запрос через phpMyAdmin удается?
Ага, прям set ProfName='".$NewName."' и дальше по тексту через phpMyAdmin... ;)

-~{}~ 11.07.06 13:35:

WP
> я использую абстрактный СУБД-драйвер самописный
Это педагогично?
 

Nostie

Новичок
Спасибо за ваше внимание.
Итак:
Вот запрос, как вы просили
update NiiProfs set ProfName='Nostie', ProfLab='Лаборатория ', ProfCourse='Дреность', ProfMail='адрес' where ProfNumber='1'
Сообщения об ошибках, естественно, не отключены.
В логах ничего не обнаружено
Через phpMyAdmin удается.

-~{}~ 11.07.06 13:45:

Еще раз спасибо) кажется ошибка найдена.
Но попутно возник другой вопрос, надеюсь я найду на него ответ, если нет - обращусь к вам)))) Очень помогло!
 

Gorynych

Посетитель PHP-Клуба
kruglov

ключевое слово было аналогичный.

и, судя по приведенному варианту ответа, девушка ("... что с php знакома недавно") не безнадежна
 

WP

^_^
kruglov
Не знаю, думаю что оба способа имеют право на жизнь, мне так привычно.
Nostie
Изумительный ответ :) С удовольствием.
 
Сверху