Помогите разобраться с апдейтом записи в базе

Статус
В этой теме нельзя размещать новые ответы.

Istergul

Создатель
Регистрация
19 Янв 2009
Сообщения
17
Реакции
0
Не могу понять причину ошибки. Запись не изменяется в базе.
Скрипт должен вносить изменения в выбранную запись. Выводится следующая ошибка:
Warning: mysqli_error() expects exactly 1 parameter, 0 given in Z:\home\kniga\www\ad.php on line 38
Все переменные есть. Они не пустые, тогда же в чём дело?..
Может кто-неть увидит ошибку..

Код:
if ($_SERVER['REQUEST_METHOD'] == "POST")
{
	$id = $_POST['id'];
	$suk = htmlspecialchars(stripslashes($_POST['suk']));
	$what = htmlspecialchars(stripslashes($_POST['what']));
	$mesto = htmlspecialchars(stripslashes($_POST['mesto']));
	$name = htmlspecialchars(stripslashes($_POST['name']));
	if ($suk == '')
	{
		throw new Exception ('Вы не ввели имя!');
	}
	if ($what == '')
	{
		throw new Exception ('Вы не ввели причину вашей жалобы!');
	}
	@ $result = mysqli_query($conn,"update $table set name=$name, suk=$suk, what=$what, mesto=$mesto where id=$id") or die(mysqli_error());
	if (!$result)
	{
		throw new Exception('Не удается произвести апдейт жалобы из базы данных.'); 
	}
	else do_html_info('Запись успешно изменена!');
}
 
...
PHP:
@ $result = mysqli_query($conn,"update $table set name=$name, suka=$suka, what=$what, mesto=$mesto where id=$id") or die(mysqli_error($conn))
...
 
Да не в этом дело. Наверно что-то с колонками.
 
Вы попробовали, прежде чем что-то утверждать?

Да, в одинарные кавычки все переменные возьмите:
PHP:
"update $table set name='$name', suka='$suka', what='$what', mesto='$mesto' where id='$id'"
 
оказалось дело в отсутствии одинарных кавычек.
но почему?
запрос выборки, удаления и добавления отлично работает без кавычек, в которые заключены переменные.
 
Выборка и удаление вполне могут работать нормально, т.к., наверняка, используют только колонку id(а она integer). Но вот как добавление у тебя работало - хз.
Скорее всего не обновлялись данные, т.к. в некоторых переменных присутствовал либо пробел, либо другие символы(которые обязательно должны быть в кавычках).
 
оказалось дело в отсутствии одинарных кавычек.
но почему?
запрос выборки, удаления и добавления отлично работает без кавычек, в которые заключены переменные.

Потому что по синтаксису строковые значения в запросах нужно указывать в одинарных кавычках.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху