Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Помогите с mysql_error()
Если в функции mysql_error() и mysql_errno() передать идентификатор соеденения $this->db_cid то появляется ошибка
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in z:hometestwwwtest.php on line 16
Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in z:hometestwwwtest.php on line 16
Без него все работает нормально.
Но в документации по пхп сказано что все правильно. Что я делаю не правильно?
Тестирую на денвере php 5 mysql 4
f0rm4t
Отправлено: 20 Января, 2007 - 16:14:22
Посетитель
Покинул форум
Сообщений всего: 433
Дата рег-ции: Июнь 2006
Помог: -1 раз(а)
Вероятно что соединение возвращает неверный идентификатор (соединение не прошло) в переменную db_cid, по этому и возникает конфликт типов.
(Добавление)
Так же можешь просто скрыть вывод ошибок, добавив собачку =)
Dimentor
Отправлено: 20 Января, 2007 - 17:39:57
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Сент. 2006
Помог: 0 раз(а)
Поправил немного пример.
Так если нет соеденения с БД mysq_error() должна обработать $db_cid. И выдать текст ошибки.
Что то у меня не получается, без ID mysq_error() работает конечно как надо. Охота понять почему не принимает идентификатор.
ЗЫ: PHP начал учить не давно, так что с моей стороны могут возникать глупые вопросы
f0rm4t
Отправлено: 20 Января, 2007 - 20:53:10
Посетитель
Покинул форум
Сообщений всего: 433
Дата рег-ции: Июнь 2006
Помог: -1 раз(а)
Блин, ведь тебе сказал причину!
Цитата:
resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] )
Возвращает указатель на соединение с MySQL в случае успешного выполнения, или FALSE при неудаче.
Если соединение не прошло, указатель в переменной неверен. Функции mysql_error() и mysql_errno() в качестве аргументов принимают указатель на соединение.
Так как соединение не прошло - указатель неверен, вот mysql_err* и ругается на него.
Dimentor
Отправлено: 20 Января, 2007 - 22:02:11
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Сент. 2006
Помог: 0 раз(а)
А нафиг она вообще может принимать аргумент.
string mysql_error ( [resource link_identifier] )
Если он не верен она ругается, а если он верен, то функция mysql_err* вообще по идее не нужна, она вернет пустую строку.
f0rm4t
Отправлено: 20 Января, 2007 - 22:55:06
Посетитель
Покинул форум
Сообщений всего: 433
Дата рег-ции: Июнь 2006
Помог: -1 раз(а)
Если у тебя используется несколько соединений с базой (возможно несколько серверов), то иначе никак. Но раз нет правильного указателя - не надо его использовать.
Как сказал выше, можно просто скрыть вывод ошибок...
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.