![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| capricorn |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 22.10.2007 Репутация: нет Всего: 1 |
есть такая ф-ия:
далее где-то в коде:
во здесь и проблема. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\test3\www\sql.php on line 14 но, если вызвать mysql_fetch_array с параметром, возвращаемым напрямую mysql_query, то всё ок. (напр. так
ЗЫ это просто пример, я хочу узнать, почему так происходит.... Помогите! Зарание спасибо! Это сообщение отредактировал(а) capricorn - 28.10.2007, 12:39 |
||||||
|
|||||||
| skyboy |
|
||||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
давай посмотрим на твой код:
Если ошибка соеднения - то выдаем текст ошибки.
Если не получилось выбрать базу - выдаем ошибку.
Если запрос не был выполнен из-за ошибки, то... тупо игнорируем? скорее всего, твой запрос просто вызывает ошибку. Ну, мало ли, кавычки не закрыл, или прав на выполнение запросов нет... Но ошибки этой ты не видишь... Вот, вариант. |
||||||
|
|||||||
| capricorn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 22.10.2007 Репутация: нет Всего: 1 |
да нет же. вопрос понят неправильно.
mysql_query($query, $PublicSqlBase); - возвращает мне результат запроса, а вот МОЯ ФУНКЦИЯ (function SQL_QUERY($query)) - этот самый результат возвращает неверно =( посему mysql_fetch_array и ругается. но вот если оформить ф-ию так, то всё пойдёт нормально:
просекаешь в чём суть? вот я и не поймю почему моя ф-ия возвращает "кривой" результат. А может дело в реализации ПХП, или надо сначала как-то обработать этот результат, хз... :( Это сообщение отредактировал(а) capricorn - 28.10.2007, 16:52 |
|||
|
||||
| HotHead |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 26.10.2007 Репутация: нет Всего: 4 |
capricorn, я бы первым делом попробовал написать "SELECT * FROM Gallery WHERE id=0". Или этот глюк только на форуме? Иначе всё должно работать.
|
|||
|
||||
| capricorn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 22.10.2007 Репутация: нет Всего: 1 |
это я когда на форум код переносил - опечятку сделал
а решение найдено (в переустановке сервера (т.е. апача, и мускл/пхп вместе с ним) %)). тема закрыта, всем спасибо! |
|||
|
||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
...а твоя функция возвращает то, что возвращает mysql_query внутри, верно? а mysql_query возвращает либо идентификатор выполненного запроса(что без проблем парсится при помощи mysql_fetch_array/mysql_fetch_row), либо возвращает false в случае ошибки, парсинг которого(значения false) пориведет к сообщению
Естественно, так как у тебя не было проверки в твоей функции, то ты не мог определить, что причина в запросе. Твоя функция возвращала false, а ты искал причины в РНР-коде своей функции, а не в запросе или настройках сервера. Не самый лучший подход - игнорировать ошибки. Так как соединение и указание БД происходили(иначе ты бы видел сообщения - эти-то ошибки у тебя обрабатываются), запрос мог не выполнится из-за превышения максимального количества выполняемых запросов(видать, были у тебя глючные запросы, выполнение которых повисло, не завершившись) или подключений. echo mysql_error() тебе бы это показало. Если бы ты захотел. P.S. Меня ещё и удивляет, что ты под каждый запрос заново коннектишься к БД. Получается ты(потенциально) теряешь время и(совсем наверняка) быстренько расходуешь лимит доступных подключений. Вот если у тебя за время работы 10 запросов, значит у тебя создастся 10(!) подключений, которые завершатся только при окончании работы скрипта. Почему бы не подключаться один разх в начале работы? |
||||
|
|||||
| NiCketT |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 10.9.2007 Репутация: нет Всего: нет |
Есть запрос
Пишу
а оно выдает ошибку
В чем дело?! Через phpMyAdmin работает нормально Это сообщение отредактировал(а) NiCketT - 29.10.2007, 23:36 |
||||||
|
|||||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
сделай так:
что выдает? |
|||
|
||||
| NiCketT |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 10.9.2007 Репутация: нет Всего: нет |
skyboy
Сначала попрежнему выдает
затем, когда поставил вездле кавычки
(кстати, что эти кавычки означают?) выдало вот-такое
Это сообщение отредактировал(а) NiCketT - 30.10.2007, 09:36 |
||||||
|
|||||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
конечно. как же я сразу просмотрел?! ты же обращаешься к переменной $resul, а не $result!
Прямые кавычки(в отличие от обратных "`", которые позволяют отличать имена полей/таблиц/БД от зарезервированных слов) как и двойные кавычки " указывают на строковые константы. Т.е. ты свои запросом
ты пытаешься вытянуть 6 строковых констант('name', 'city', 'country', 'year', 'level', 'score' и 'public_date') не из таблицы, а из двух строковых констант('ten_users' и 'ten_records'), что есть неправильно и вызывает смуту и возражения сервера. |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |