|
|
|
| Зачем знак "@"?
Я иногда вижу его в чужих кодах, но не пойму зачем.
Например, была ситуация, когда при mysql_fetch_array высскакивала ошибка, а когда добавил @mysql_fetch_array - ошибка пропала. В чём дело? | |
|
|
|
|
|
|
|
для: maxam
(05.02.2011 в 16:20)
| | @ - подавляет ошибки.
Редко когда действительно необходимо ее использовать - проводите прверку на ошибки - так ваш сценарий будет более гибким. | |
|
|
|
|
|
|
|
для: maxam
(05.02.2011 в 16:20)
| | Этот символ подавляет вывод сообщений об ошибке. Иногда бывают ситуации - пусть лучше приложение не работает некоторое время, чем выводится какое-то сообщение. Однако, применительно к функции mysql_fetch_array() лучше штатно обрабатывать неправильное выполнение SQL-запроса: это не файл, который может быть куда-то случайно перемещен. Достаточно проверить состояние дескриптора результирующей таблицы и принять решение о дальнейших действиях, а не передавать неправильный дескриптор функции mysql_fetch_array() | |
|
|
|
|
|
|
|
для: cheops
(05.02.2011 в 16:31)
| | Так вроде всякие проверки делаю, ошибки вообще быть не должно. Не понимаю, почему высскакивает. Но появляется заметил когда данных в искомой таблице нет. | |
|
|
|
|
|
|
|
для: Maxam
(05.02.2011 в 17:04)
| | Проверить то не на чем.. Но, по-моему, дескриптор не возвращает false, если в результате не нашлось ни одной строки. Т.е. и в mysql_fetch_* передается правильный дескриптор.
А что, если при отсутствии соответствующих строк в бд (т.е. нет результатов) применить, например mysql_num_rows? | |
|
|
|
|
|
|
|
для: Maxam
(05.02.2011 в 17:04)
| | >Так вроде всякие проверки делаю, ошибки вообще быть не должно. Не понимаю, почему
>высскакивает. Но появляется заметил когда данных в искомой таблице нет.
А количество строк в результирующей таблице проверяете?
<?php
...
$res = mysql_query($query);
if(!$res) exit("Ошибка - ".mysql_error());
if(mysql_num_rows($res))
{
while($result = mysql_fetch_array($res))
{
...
}
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(05.02.2011 в 17:15)
| | Вставил проверку:
if($mysql_query==true)
{
while ...
}
|
и ошибка пропала. | |
|
|
|
|
|
|
|
для: Maxam
(05.02.2011 в 18:18)
| | На всякий случай добавил эту проверку везде. Спасибо. | |
|
|
|