
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.82] |
![]() |
|
![]() | Данный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
Отправляю запрос
![]() ![]() <? $db = mysql_connect("localhost","arkadii","*****"); mysql_select_db("a2-dashboard-template",$db); $result = mysql_query("SELECT * FROM sdelki-amocrm",$db); $myrow = mysql_fetch_array($result); echo $myrow["nazvanie-sdelki"]; ?> В ответ: ![]() ![]() Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in X:\home\test1.ru\www\index.php on line 20 Подскажите, почему не работает? Скриншот таблицы: https://yadi.sk/i/KsyZjq_TWmEPrw У юзера arkadii есть полные права на базу и таблицу sdelki-amocrm |
Сообщ.
#2
,
|
|
|
Цитата Для запросов SELECT, SHOW, DESCRIBE, EXPLAIN и других запросов, возвращающих результат из нескольких рядов, mysql_query() возвращает дескриптор результата запроса (resource), или FALSE в случае ошибки Проверь на ошибку $result |
Сообщ.
#3
,
|
|
|
Цитата rownong@yandex.ru @ Подскажите, почему не работает? ![]() ![]() <? $db = mysql_connect("localhost","arkadii","*****"); mysql_select_db("a2-dashboard-template",$db); $result = mysql_query("SELECT * FROM sdelki-amocrm",$db); if (!$result) { die('Неверный запрос: ' . mysql_error()); } $myrow = mysql_fetch_array($result); echo $myrow["nazvanie-sdelki"]; ?> |
Сообщ.
#4
,
|
|
|
rownong@yandex.ru, в дополнение к дополнению к коду от Gonarh
![]() |
![]() |
Сообщ.
#5
,
|
|
Цитата rownong@yandex.ru @ почему не работает? Потому что отправляемый запрос выглядит так: ![]() ![]() SELECT * FROM sdelki-amocrm MySQL (как, впрочем, и любой другой SQL-сервер) однозначно воспринимает тире как оператор вычитания. И соответственно текст запроса в правильной интерпретации - мягко говоря, некорректный. Если автору запроса захотелось отойти от конвенции именования, он ОБЯЗАН квотировать имена. В случае MySQL в качестве квотирующего символа используется обратная кавычка. Т.е. запрос, имеющий шанс заработать, выглядит так: ![]() ![]() SELECT * FROM `sdelki-amocrm` Хотя гораздо правильнее - переименовать все объекты, имена которых не соответствуют стандарту. |
Сообщ.
#6
,
|
|
|
Спасибо за ответы.
Поставил обратную кавычку ` у названии таблицы и заработало. Не знал, спасибо. У меня много где в БД тире для связки слов. Как лучше тогда подписывать: "sdelki-amocrm" => "sdelkiAmocrm"? |
Сообщ.
#7
,
|
|
|
Проверку $result сделал так (работает)
![]() ![]() /* Делаем выборку из таблицы ИЛИ вывести ошибку */ $result = mysql_query("SELECT * FROM `sdelki-amocrm`") or exit("Ошибка в SQL запросе: " . mysql_error()); Хочу еще повесить сообщение на подключение к серверу mysql. Попробовал но не заработало ![]() ![]() /* Подключаемся к серверу mysql */ $db = mysql_connect("localhost","arkadii","123456"); or die("Ошибка подключения к серверу MySQL: " . mysql_error()); Сделал по аналогии, почему на сработало? Вернуло https://yadi.sk/i/LaLNrn-v5Oi_Fw С проверкой таблицы тоже не сработало ![]() ![]() /* Подключаемся к нужной таблице*/ mysql_select_db("a2-dashboard-template1",$db); or exit("Ошибка: " . mysql_error()); |
Сообщ.
#8
,
|
|
|
Цитата Как лучше тогда подписывать: "sdelki-amocrm" => "sdelkiAmocrm"? Лучше "sdelki_amocrm". Для всех имен очень желательно использовать snake_case (все буквы строчные, слова разделяются подчеркиваниями). Меньше сюрпризов в будущем. Цитата Попробовал но не заработало Если сообщение об ошибке начинается со слов "Parse error" и "syntax error" - значит ошибка в синтаксисе программы. В данном случае точка с запятой перед оператором or совершенно лишняя - этот оператор является частью выражения, а не началом нового. И вообще: текст сообщения об ошибке можно выделить мышкой и скопипастить текстом. Картинки и хостеры тут не нужны. P. S. Извиняюсь за нескромный вопрос: а какими языками программирования ты уже владеешь? |
Сообщ.
#9
,
|
|
|
Спасибо. Теперь работает. Сделал так:
![]() ![]() <? /* Подключаемся к серверу mysql ИЛИ вывести ошибку */ $db = mysql_connect("localhost","arkadii","123456") or exit("Ошибка в подключении к серверу MySQL: ".mysql_error()); /* Подключаемся к базе ИЛИ вывести ошибку */ mysql_select_db("a2-dashboard-template",$db) or exit("Ошибка в обращении к базе данных: ".mysql_error()); /* Делаем выборку из таблицы ИЛИ вывести ошибку */ $result = mysql_query("SELECT * FROM `sdelki-amocrm`") or exit("Ошибка в SQL запросе: " . mysql_error()); /* Выборку помещаем в массив */ $myrow = mysql_fetch_array($result); /* Элемменты массива выводим на страницу */ echo $myrow["nazvanie-sdelki"]; ?> Ошибки подключения к базе и sql запроса теперь пишутся норм. Только в ошибке подключения к серверу mysql вылазит инфа перед моим текстом. Почему? ![]() ![]() Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'arkadii'@'localhost' (using password: YES) in X:\home\test1.ru\www\index.php on line 17 Ошибка в подключении к серверу MySQL: Access denied for user 'arkadii'@'localhost' (using password: YES) Добавлено Цитата AVA12 @ P. S. Извиняюсь за нескромный вопрос: а какими языками программирования ты уже владеешь? Начал изучать PHP и JS. |
Сообщ.
#10
,
|
|
|
Цитата rownong@yandex.ru @ Только в ошибке подключения к серверу mysql вылазит инфа перед моим текстом. Почему? Потому, что сперва PHP ругается, а потом уже и ты за ним. Как и как полно должен ругаться PHP, или не ругаться вообще - настраивается в конфиг-файле PHP. |
Сообщ.
#11
,
|
|
|
Цитата JoeUser @ Потому, что сперва PHP ругается, а потом уже и ты за ним. Как и как полно должен ругаться PHP, или не ругаться вообще - настраивается в конфиг-файле PHP. Ок понял, спасибо |