Mysql query не работает

Содержание
  1. Почему не работает mysqli запрос?
  2. Mysql query не работает
  3. Форум пользователей MySQL
  4. #1 10.09.2007 12:27:56
  5. Запрос не работает в РНР, но работает в Mysql
  6. #2 10.09.2007 12:48:24
  7. Re: Запрос не работает в РНР, но работает в Mysql
  8. #3 10.09.2007 13:13:50
  9. Re: Запрос не работает в РНР, но работает в Mysql
  10. #4 10.09.2007 13:22:51
  11. Re: Запрос не работает в РНР, но работает в Mysql
  12. #5 10.09.2007 16:37:35
  13. Re: Запрос не работает в РНР, но работает в Mysql
  14. #6 17.09.2007 11:56:30
  15. Re: Запрос не работает в РНР, но работает в Mysql
  16. #7 17.09.2007 14:06:32
  17. Re: Запрос не работает в РНР, но работает в Mysql
  18. #8 19.09.2007 12:37:05
  19. Re: Запрос не работает в РНР, но работает в Mysql
  20. #9 19.09.2007 12:43:58
  21. Re: Запрос не работает в РНР, но работает в Mysql
  22. #10 19.09.2007 14:47:39
  23. Re: Запрос не работает в РНР, но работает в Mysql
  24. #11 19.09.2007 16:37:56
  25. Re: Запрос не работает в РНР, но работает в Mysql
  26. #12 21.09.2007 14:23:33
  27. Re: Запрос не работает в РНР, но работает в Mysql
  28. #13 21.09.2007 16:00:26
  29. Re: Запрос не работает в РНР, но работает в Mysql
  30. #14 28.09.2007 14:22:14
  31. Re: Запрос не работает в РНР, но работает в Mysql
  32. #15 28.09.2007 15:24:27
  33. Re: Запрос не работает в РНР, но работает в Mysql
  34. #16 04.10.2007 14:20:24
  35. Re: Запрос не работает в РНР, но работает в Mysql
  36. Board footer
  37. Устраняем типичные ошибки в MySQL
  38. Не удаётся подключиться к локальному серверу
  39. Не удаётся подключиться к серверу MySQL
  40. Ошибки запрета доступа в MySQL
  41. Потеря соединения с сервером MySQL
  42. Слишком много подключений
  43. Недостаточно памяти
  44. MySQL продолжает «падать»
  45. Заключение
Читайте также:  Не работает обогрев заднего стекла ниссан теана j31

Почему не работает mysqli запрос?

Привет. Вот не могу понять. Есть два скрипта (почти одинаковые)
Суть в том что один и тот же sql отказывается работать в разных скриптах.
Первый скрипт

Второй скрипт имеет 1 запрос (он собственно добавляет голд игроку)
и второй запрос который отказывается работать.

Зарание спасибо за помощь. ( во время дебага сняты обвёртки xxtea и rsa

  • Вопрос задан более трёх лет назад
  • 1980 просмотров

$salt = ‘fghjghjfhjfjhnbvmnbmvhjgfgjh785678tyutyu76678xcvbxcvb67hdfghdfgh67e657ytryerty5674567ryerty6574567tryertye75467657trhgfbvnhmhkijiluiotyiueuwyertsdrgfhndhgjdtyuerghddjghjhgjfktryudghgfhrthrtdhgfhdtyerghfghrtyer74576ytreuyytu6756yertytryet756745yhhgfnmdfgsreyyrteu676584678677795785687ytujhgfnvgsgomsjgsfguhjhgsdfujsdfgpousgjpsihsgubsfug89e6w5hisfdgbsidfgh5467woaiybvsdfghewtuhrty90w465uiregthshuaert90wuitre97gfuhfsujghhntigfjhtkh90eruheiuhfdiuhtruhghrthr9ugfgijdfngifdgijfgnsdfghwe9065hutriosgdfojdfigodfhgeiurtwhe9057yer9tud9fsoiudfshgert9y435trhgfdiuhgsdiufghidfghfffff’;
$hash = md5(sha1(md5(md5($salt . $oplata . $rnd . $summ . $time . $id . $kl . $magas . $xxtea . $salt) . $salt . $time . $id . $magas . $rnd) . $salt . $time . $id . $magas . $rnd) . $salt . $kl . $kl);
$hash = hash(‘sha512’, $hash);
$hash = hash(‘whirlpool’, $hash);
$hash = hash(‘ripemd320’, $hash);
$hash = hash(‘haval256,5’, $hash);
$hash = hash(‘ripemd320’, $hash);
$hash = hash(‘snefru’, $hash);
$hash = hash(‘crc32’, $hash);

Источник

Mysql query не работает

Здесь могла бы быть ваша реклама

Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel

Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.

Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо

После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..

Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.

Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.

На последок как оно происходит на форумах

Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.

Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

Источник

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Страниц: 1

#1 10.09.2007 12:27:56

Запрос не работает в РНР, но работает в Mysql

Проблема вообщем такая
вот текст запроса
INSERT INTO mi_gruz(code,model,type,year,price,status,foto ) VALUES(«1″,»2″,»3″,»4″,»5″,»6″,»7» );
В Mysql успешно работает, а если через mysql_query() выдаёт
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near » at line 1
Синтаксической ошибки ну ни как не увижу здесь. Помогите, пожалуйста.

#2 10.09.2007 12:48:24

Re: Запрос не работает в РНР, но работает в Mysql

Попробуй вот так:

INSERT INTO `mi_gruz` (`code`, `model`, `type`, `year`, `price`, `status`, `foto`) VALUES (‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’);

Отредактированно aleksmir (10.09.2007 12:48:57)

#3 10.09.2007 13:13:50

Re: Запрос не работает в РНР, но работает в Mysql

Как я тока не пробовал. Но кое-что изменил — `mi_gruz`. Та же ошибка теперь выглядет по-другому
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘ ‘mi_gruz’ (code,model,type,year,price,status,foto ‘ at line 1
либо
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘ ‘mi_gruz’ (‘code’,’model’,’type’,’year’,’price’,’status’,’foto’ ‘ at line 1

Отредактированно Hagehog (10.09.2007 13:14:40)

#4 10.09.2007 13:22:51

Re: Запрос не работает в РНР, но работает в Mysql

Какое у Вас значение @@sql_mode в PHP? Попробуйте запрос
SELECT @@sql_mode AS mode

Какой sql_mode в консоли MySQL?
Попробуйте запрос в виде:
INSERT INTO mi_gruz (code,model,type,year,price,status,foto ) VALUES (‘1′,’2′,’3′,’4′,’5′,’6′,’7’ );

#5 10.09.2007 16:37:35

Re: Запрос не работает в РНР, но работает в Mysql

И напишите, пожалуйста, код PHP, который Вы вызываете.
У меня есть подозрение, что какие-то кавычки там съедаются.

Для DEBUG я обычно делаю так:

#6 17.09.2007 11:56:30

Re: Запрос не работает в РНР, но работает в Mysql

Результат запроса SELECT @@sql_mode AS mode = mode

#7 17.09.2007 14:06:32

Re: Запрос не работает в РНР, но работает в Mysql

Wow. Кажется, разобрался с кодом. Но вообще, читается он достаточно тяжело.

Попробуйте все-таки выводить готовое выражение перед вызовом mysql_query.
Вполне возможно, что Вы где-то недоопределили переменную, которая оказывается
пустой при вызове выражения. Например, у Вас используется в первом запросе
$rest, а во втором $resh. Возможно, это так, как и задумывалось, из этого куска
кода не видно. Но может быть, это опечатка, из-за которой все и не работает.

Попробуйте сделать (в обоих выражениях)
$sql = ‘ . ‘;
echo ‘QUERY: ‘ . $sql . ‘
‘;
$m = mysql_query ($sql) or die (mysql_error());

P.S. Судя по виду ошибки, склонен считать, что она происходит в первом запросе
при пустом названии таблицы.

#8 19.09.2007 12:37:05

Re: Запрос не работает в РНР, но работает в Mysql

Проверял. С выражением вроде всё нормально, так как писал специально для проверки в файл

INSERT INTO ‘ mi_special ‘ (‘code’,’model’,’type’,’year’,’price’,’status’,’foto’ ) VALUES(‘яяф’,»,’ффф’,’ффф’,’ффф’,»,’d41d8cd98f00b204e9800998ecf8427e’ );

INSERT INTO ‘mi_gruz’ (‘code’,’model’,’type’,’year’,’price’,’status’,’foto’ ) VALUES(»,»,»,»,»,»,’d41d8cd98f00b204e9800998ecf8427e’ );

INSERT INTO ‘mi_special’ (code,model,type,year,price,status,foto ) VALUES(«яяф»,»»,»ффф»,»ффф»,»ффф»,»»,»d41d8cd98f00b204e9800998ecf8427e» );

INSERT INTO mi_special (code,model,type,year,price,status,foto ) VALUES(‘яяф’,»,’ффф’,’ффф’,’ффф’,»,’d41d8cd98f00b204e9800998ecf8427e’ );

Всё это не пашет. Проверял много других вариантов. Про то что может съедаться ковычка тоже думал. Чё-то никакого результата.
_______________
В дб работают вот эти два запроса
INSERT INTO mi_gruz (code,model,type,year,price,status,foto ) VALUES (‘1′,’2′,’3′,’4′,’5′,’6′,’7’ );
INSERT INTO mi_gruz (code,model,type,year,price,status,foto ) VALUES («1″,»2″,»3″,»4″,»5″,»6″,»7» );

Отредактированно Hagehog (19.09.2007 12:40:17)

#9 19.09.2007 12:43:58

Re: Запрос не работает в РНР, но работает в Mysql

Ну, из всех этих выражений правильным является только последнее, разумеется.
Попробуйте скопировать запросы из проверочного файла в клиент mysql и запустить
их оттуда. Почти уверен, что они не сработают и там, т.к. забыли какую-нибудь
кавычку или запятую.

#10 19.09.2007 14:47:39

Re: Запрос не работает в РНР, но работает в Mysql

Я так собственно и делал
эти два запроса
INSERT INTO mi_gruz (code,model,type,year,price,status,foto ) VALUES (‘1′,’2′,’3′,’4′,’5′,’6′,’7’ );
INSERT INTO mi_gruz (code,model,type,year,price,status,foto ) VALUES («1″,»2″,»3″,»4″,»5″,»6″,»7» );
Я скопировал именно оттуда. Очень-очень странно

#11 19.09.2007 16:37:56

Re: Запрос не работает в РНР, но работает в Mysql

Боюсь, что Вам прийдется все-таки выполнить тот код, который я написал, иначе мы ничего
не узнаем

Попробуйте позапускать запросы из PHP. Дело в сложности конструкций PHP, а не в MySQL,
раз все в нем работает

#12 21.09.2007 14:23:33

Re: Запрос не работает в РНР, но работает в Mysql

Нашёл косяк. Всё понял. Не выяснил правда из-за чего.

Тут я присваиваю весь массив, вроде бы для рнр вполне допустимая операция, поэтому в файл пишется полностью строка, но в mysql он подаёт тока первый символ, то есть также как сделал бы Си++.
Всем спасибо.)

#13 21.09.2007 16:00:26

Re: Запрос не работает в РНР, но работает в Mysql

PHP не преобразовавыет массивы в строку автоматически . Если я правильно понимаю, Вам следует использовать join(‘,’, $columns)

#14 28.09.2007 14:22:14

Re: Запрос не работает в РНР, но работает в Mysql

В том то и дело, что преобразовывает, но только одномерный массив, при попытке вывести двумерный массив, он выдаст — Array.)
А что делает функция join?
OFFTOP:
Есть ли функция для подсчёта количества строк в таблице?

#15 28.09.2007 15:24:27

Re: Запрос не работает в РНР, но работает в Mysql

Как следует из названия — объединяет

Оффтоп: SELECT COUNT(*) FROM table;

P.S. Кстати, «оффтоп» тут как раз в тему, а пхп — это оффтоп.

#16 04.10.2007 14:20:24

Re: Запрос не работает в РНР, но работает в Mysql

Понял, буду иметь ввиду. Спасибо большое.)

Страниц: 1

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson

Источник

Устраняем типичные ошибки в MySQL

MySQL — система управления базами данных (СУБД) с открытым исходным кодом от компании Oracle. Она была разработана и оптимизирована специально для работы веб-приложений. MySQL является неотъемлемой частью таких веб-сервисов, как Facebook, Twitter, Wikipedia, YouTube и многих других.

Эта статья расскажет, как определять, с чем связаны частые ошибки на сервере MySQL, и устранять их.

Не удаётся подключиться к локальному серверу

Одной из распространённых ошибок подключения клиента к серверу является «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)».

Эта ошибка означает, что на хосте не запущен сервер MySQL ( mysqld ) или вы указали неправильное имя файла сокета Unix или порт TCP/IP при попытке подключения.

Убедитесь, что сервер работает. Проверьте процесс с именем mysqld на хосте сервера, используя команды ps или grep, как показано ниже.

Если эти команды не показывают выходных данных, то сервер БД не работает. Поэтому клиент не может подключиться к нему. Чтобы запустить сервер, выполните команду systemctl.

Чтобы проверить состояние службы MySQL, используйте следующую команду:

Если в результате выполнения команды произошла ошибка службы MySQL, вы можете попробовать перезапустить службу и ещё раз проверить её состояние.

Если сервер работает (как показано) и вы по-прежнему видите эту ошибку, вам следует проверить, не заблокирован ли порт TCP/IP брандмауэром или любой другой службой блокировки портов.

Tproger , Удалённо , От 80 000 до 180 000 ₽

Для поиска порта, который прослушивается сервером, используйте команду netstat .

Не удаётся подключиться к серверу MySQL

Ещё одна похожая и часто встречающаяся ошибка подключения — «(2003) Can’t connect to MySQL server on ‘server’ (10061)». Это означает, что в сетевом соединении было отказано.

Следует проверить, работает ли в системе сервер MySQL (смотрите выше) и на тот ли порт вы подключаетесь (как найти порт, можно посмотреть выше).

Похожие частые ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:

Ошибки запрета доступа в MySQL

В MySQL учётная запись (УЗ) определяется именем пользователя и клиентским хостом, с которого пользователь может подключиться. УЗ может также иметь данные для аутентификации (например, пароль).

Причин для запрета доступа может быть много. Одна из них связана с учётными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении. Это означает, что имя пользователя, указанное в соединении, может не иметь прав доступа к базе данных.

В MySQL есть возможность создавать учётные записи, позволяющие пользователям клиентских программ подключаться к серверу и получать доступ к данным. Поэтому при ошибке доступа проверьте разрешение УЗ на подключение к серверу через клиентскую программу.

Увидеть разрешённые привилегии учётной записи можно, выполнив в консоли команду SHOW GRANTS
Входим в консоль (пример для Unix, для Windows консоль можно найти в стартовом меню):

В консоли вводим команду:

Дать привилегии конкретному пользователю в БД по IP-адресу можно, используя следующие команды:

Ошибки запрещённого доступа могут также возникнуть из-за проблем с подключением к MySQL (см. выше).

Потеря соединения с сервером MySQL

С этой ошибкой можно столкнуться по одной из следующих причин:

  • плохое сетевое соединение;
  • истекло время ожидания соединения;
  • размер BLOB больше, чем max_allowed_packet .

В первом случае убедитесь, что у вас стабильное сетевое подключение (особенно, если подключаетесь удалённо).

Если проблема с тайм-аутом соединения (особенно при первоначальном соединении MySQL с сервером), увеличьте значение параметра connect_timeout .

В случае с размером BLOB нужно установить более высокое значение для max_allowed_packet в файле конфигурации /etc/my.cnf в разделах [mysqld] или [client] как показано ниже.

Если файл конфигурации недоступен, это значение можно установить с помощью следующей команды.

Слишком много подключений

Эта ошибка означает, что все доступные соединения используются клиентскими программами. Количество соединений (по умолчанию 151) контролируется системной переменной max_connections . Устранить проблему можно, увеличив значение переменной в файле конфигурации /etc/my.cnf .

Недостаточно памяти

Если такая ошибка возникла, это может означать, что в MySQL недостаточно памяти для хранения всего результата запроса.

Сначала нужно убедиться, что запрос правильный. Если это так, то нужно выполнить одно из следующих действий:

  • если клиент MySQL используется напрямую, запустите его с ключом —quick switch , чтобы отключить кешированные результаты;
  • если вы используете драйвер MyODBC, пользовательский интерфейс (UI) имеет расширенную вкладку с опциями. Отметьте галочкой «Do not cache result» (не кешировать результат).

Также может помочь MySQL Tuner. Это полезный скрипт, который подключается к работающему серверу MySQL и даёт рекомендации по настройке для более высокой производительности.

MySQL продолжает «падать»

Если такая проблема возникает, необходимо выяснить, заключается она в сервере или в клиенте. Обратите внимание, что многие сбои сервера вызваны повреждёнными файлами данных или индексными файлами.

Вы можете проверить состояние сервера, чтобы определить, как долго он работал.

Чтобы узнать время безотказной работы сервера, запустите команду mysqladmin .

Кроме того, можно остановить сервер, сделать отладку MySQL и снова запустить службу. Для отображения статистики процессов MySQL во время выполнения других процессов откройте окно командной строки и введите следующее:

Заключение

Самое важное при диагностике — понять, что именно вызвало ошибку. Следующие шаги помогут вам в этом:

  • Первый и самый важный шаг — просмотреть журналы MySQL, которые хранятся в каталоге /var/log/mysql/ . Вы можете использовать утилиты командной строки вроде tail для чтения файлов журнала.
  • Если служба MySQL не запускается, проверьте её состояние с помощью systemctl . Или используйте команду journalctl (с флагом -xe ) в systemd.
  • Вы также можете проверить файл системного журнала (например, /var/log/messages ) на предмет обнаружения ошибок.
  • Попробуйте использовать такие инструменты, как Mytop, glances, top, ps или htop, чтобы проверить, какая программа использует весь ресурс процессора или блокирует машину. Они также помогут определить нехватку памяти, дискового пространства, файловых дескрипторов или какого-либо другого важного ресурса.
  • Если проблема в каком-либо процессе, можно попытаться его принудительно остановить, а затем запустить (при необходимости).
  • Если вы уверены, что проблемы именно на стороне сервера, можете выполнить команды: mysqladmin -u root ping или mysqladmin -u root processlist , чтобы получить от него ответ.
  • Если при подключении проблема не связана с сервером, проверьте, нормально ли работает клиент. Попробуйте получить какие-либо его выходные данные для устранения неполадок.

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации

Источник

Оцените статью