[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не могу составить проверку успешности SQL-операции
alex455
$query1 = $db -> query("UPDATE `news` SET `title` = '$title', `text` = '$text'");

if (mysql_errno())
{
echo '<p>Во время обновления данных возникла <strong style="color: red;">ошибка</strong>. Данные не были обновлены.
Вернитесь <a href="admin.php">в панель управления</a>.</p>'
;
}
else
{
echo '<p>Данные были обновлены. Вернитесь <a href="admin.php">в панель управления</a>.</p>';
}

Произошла ошибка при обновлении или нет - выводится всегда строка, что всё прошло успешно. Например, если сделать такую ошибку:
$query1 = $db -> query("UPDATE `news1111111` SET `title` = '$title', `text` = '$text'");

Данные в БД не обновятся, но текст будет выведен о том, что всё в порядке. Что я делаю не так?



Спустя 5 минут, 31 секунда (28.12.2011 - 16:25) T1grOK написал(а):
mysql_affected_rows()

Спустя 25 минут, 30 секунд (28.12.2011 - 16:50) alex455 написал(а):
А что в скобки нужно вставлять? Прочитал, что link_identifier, но что это именно?

Спустя 4 минуты, 16 секунд (28.12.2011 - 16:54) Winston написал(а):
echo mysql_affected_rows($query1);

Спустя 4 минуты, 45 секунд (28.12.2011 - 16:59) alex455 написал(а):
@ $query1 = $db -> query("UPDATE `news` SET `title` = '$title', `text` = '$text'");

if (mysql_affected_rows($query1) < 1)
{
echo '<p>Во время обновления данных возникла <strong style="color: red;">ошибка</strong>. Данные не были обновлены.
Вернитесь <a href="admin.php">в панель управления</a>.</p>'
;
}
else
{
echo '<p>Данные были обновлены. Вернитесь <a href="admin.php">в панель управления</a>.</p>';
}

Теперь всё время ошибка (даже если данные обновились), + mysql_affected_rows() expects parameter 1 to be resource, boolean given in...

Спустя 50 секунд (28.12.2011 - 17:00) Winston написал(а):
А нафига ты переменную собакой (@) скрыл ?

Спустя 46 секунд (28.12.2011 - 17:01) Ramzil_Nixon написал(а):
$query = mysql_query("UPDATE `news` SET 
`title` = '
$title',
`text` = '
$text'
"
) or die(mysql_error());
if($query)
{
echo 'TRUE';
}
else
{
echo 'FALSE';
}

Спустя 1 минута, 21 секунда (28.12.2011 - 17:02) Winston написал(а):
Цитата (alex455 @ 28.12.2011 - 15:59)
mysql_affected_rows() expects parameter 1 to be resource, boolean given in...

В sql запросе ошибка потому mysql_query возвращает false, b соответственно mysql_affected_rows ругается на то, что ей было передано булевое значение.
Перепиши так
$query1 = $db -> query("UPDATE `news` SET `title` = '$title', `text` = '$text'") or die(mysql_error());

Спустя 2 минуты, 50 секунд (28.12.2011 - 17:05) Ramzil_Nixon написал(а):
У тебя в запросе еще есть такие ошибки: $title и $text как это говорят не знаю, но они должны быть за пределаои " " соответственно будет так:
$query = mysql_query("UPDATE `news` SET 
`title` = '"
.$title."',
`text` = '"
.$text."'
"
) or die(mysql_error());

Спустя 20 часов, 36 минут, 56 секунд (29.12.2011 - 13:42) alex455 написал(а):
Вобщем, разобрался. Mysql_errno() работает отлично в этой ситуации. Причина была в том, что я использовать ООП метод работы с MySQL, а mysql_errno(), похоже, работает только с процедерным методом. Переписал этот скрипт процедурным методом и всё заработало.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.