|
|
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
Запрос выполняется через phpMyAdmin но этот же самый запрос, вызванный в пхп-скрипте, выдаёт ошибку синтаксиса SQL Причём из интерфейса phpmyadmin sql-запрос не просто выполняется и не даёт ошибок, а и делает то что нужно. Код: sql 1. 2. 3. 4. 5. 6. 7. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. В браузере: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2012, 21:38:22 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
Eradicator, Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2012, 22:08:21 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
MikkiMouse, Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2012, 22:44:49 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
Салют! Народ подскажите! У меня к Вам интересный вопрос. Основан на реальных событиях. :-))) Такая ситуация. Есть SQL запрос, статический, в том плане что в него ничего не подставляется, не переменные, ничего! Теперь. Сам по себе он работает в phpMyAdmin и в MySQL Workbench, а через PHP скрипт ( PDO->prepare ) он выдает SQL ошибку: ( SQLSTATE[42000]: Syntax error or access violation: 1064 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 6 ). Причем в запросе вообще нет ни одной какой-либо скобки , тут же если вывести его через die() перед непосредственно "PDO->prepare и PDO->execute" и вставить либо в phpMyAdmin , либо в MySQL Workbench все опять начинает работать!!! Все (PHP,MYSQL,APACHE) логи пусты! Очень хочется решить вопрос без выкладывания сюда этого запроса! Т.к. нельзя. Уверен по вашей наводке смогу вопрос решить! Моя логика сломана напрочь!!!!!! Есть хоть какие-нибудь здравые мысли знающих людей!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 10:53:02 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
Ofigenski, Ну все же просто - надо исправить ошибку! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 11:02:29 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
Ofigenski, поднять тестовый мускль сервер, сделать на нём копию того куска базы, с которым работает скрипт, включить полный лог запросов, выполнить препаре, изучить лог, найти запрос, думать, откуда он взялся и почему он такой кривой. PS. А вы точно тот же запрос выводите, который выполнить пытаетесь? (нет, ну мало ли...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 11:10:42 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
Ofigenski, В кавычках ничего не напутали? А то, может, вы часть PHP-кода в запрос отправили? Ofigenskiсли вывести его через die()Выводите что именно? Нужно сначала собрать запрос в отдельную переменную, а затем отправлять его и на вывод, и в MySQL. Но не пытаться выводить такое же выражение, которое собирает запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 11:27:17 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
miksoftOfigenski, В кавычках ничего не напутали? А то, может, вы часть PHP-кода в запрос отправили? Ofigenskiсли вывести его через die()Выводите что именно? Нужно сначала собрать запрос в отдельную переменную, а затем отправлять его и на вывод, и в MySQL. Но не пытаться выводить такое же выражение, которое собирает запрос. Вот!! : Получите распишитесь дорогие друзья ))) Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. Сорри, табуляция чуть поехала после копипоста! Какие мысли?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 11:50:14 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
tanglirOfigenski, поднять тестовый мускль сервер, сделать на нём копию того куска базы, с которым работает скрипт, включить полный лог запросов, выполнить препаре, изучить лог, найти запрос, думать, откуда он взялся и почему он такой кривой. Это может конечно 100% решит вопрос, но мне на данный момент реализовать это совсем не просто, это будет самым последним вариантом! tanglirPS. А вы точно тот же запрос выводите, который выполнить пытаетесь? (нет, ну мало ли...) 100%! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 12:02:43 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
Ofigenski, Я не знаю полностью синтаксис PHP, поэтому вопрос: Что такое "<<<SQL" в начале и "SQL;" в конце? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 12:17:23 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
miksoftOfigenski, Я не знаю полностью синтаксис PHP, поэтому вопрос: Что такое "<<<SQL" в начале и "SQL;" в конце? (heredoc-синтаксис) http://www.php.net/manual/ru/language.types.string.php#language.types.string.syntax.heredoc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 12:56:36 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
miksoftЧто такое "<<<SQL" в начале и "SQL;" в конце?ограничители собственно текста запроса, там всё как раз нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 13:05:17 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
tanglirmiksoftЧто такое "<<<SQL" в начале и "SQL;" в конце?ограничители собственно текста запроса, там всё как раз нормально. Всплыл еще один нюанс! Если в запросе поменять "LEFT OUTER JOIN" на "INNER JOIN" то в PHP все отрабатывает, никаких ошибок SQL нет ! Казалось бы можно сделать вывод что ошибок в скрипте нет, надо лезть в базу, НО тогда почему через phpMyAdmin и через MySQL Workbench все работает и с "LEFT OUTER JOIN" ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 13:17:29 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
Ofigenski, а если просто убрать "outer"? похоже, какой-то глюк pdo, или вы как-то не так запрос готовите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 13:38:59 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
На самом деле после того как я для себя открыл MySQL Workbench я всегда вначале пишу запрос в нем, проверяю что он работает как надо и только после это копирую его в "шаблон", который используется во всей системе, в каждом php скрипте. Шаблон имеется ввиду: Код: php 1. 2. 3. 4. 5. и т.д. PHP код. И такая схема всегда работала. А если руки прямые то подставить переменные в готовый запрос секундное дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 13:40:44 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
Ofigenski, ну вы попробуйте, попробуйте "outer" убрать. Т.е. оставить только "...left join..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 13:44:09 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
tanglirOfigenski, а если просто убрать "outer"? похоже, какой-то глюк pdo, или вы как-то не так запрос готовите. Если убрать "outer" все тоже самое! Не совсем понятно что там "готовить", запрос статический, вам я его опубликовал, везде работает кроме PHP ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 13:44:33 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
tanglirOfigenski, ну вы попробуйте, попробуйте "outer" убрать. Т.е. оставить только "...left join..." Через PHP работает только с INNER ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 13:45:45 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
Я что нарвался на ошибку PHP/SQL которую еще не видывал этот великий (я думаю и надеюсь) форум ?? Уважаемое сообщество напишите плиз хоть что то логичное, какие-нибудь мысли ... Я уже и через функцию "mysql-query" проверил, тоже ошибка, PDO полагаю не виновато! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 14:50:52 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
OfigenskiЯ что нарвался на ошибку PHP/SQL которую еще не видывал этот великий (я думаю и надеюсь) форум ??Похоже, что да... Проверьте для надежности в консольном клиенте mysql. И какая у вас точная версия MySQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 14:59:08 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
miksoftOfigenskiЯ что нарвался на ошибку PHP/SQL которую еще не видывал этот великий (я думаю и надеюсь) форум ??Похоже, что да... Проверьте для надежности в консольном клиенте mysql. И какая у вас точная версия MySQL? Версия сервера: 5.5.20-log Скопипастил этот запрос в консоль (mysql.exe) на что увидел это: ERROR 1064 (42000): 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 'AS cw LEFT OUTER JOIN setTypes AS st1 ON cw.`s_typeId0` = st1.typeId LEFT OUT' at line 1 После чего взял аналогичный рабочий запрос (большой с JOIN-ами) и увидел тоже самое, т.е. несколько аналогичных рабочих запросов не проходят, пишет ошибку, хотя в качестве теста с лету после открытия консоли попробовал "use base1;" далее " SELECT * FROM users LIMIT 100; " и все ок! Если честно консоль я никогда не использовал. Полагаю я просто не правильно ей пользуюсь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 15:53:51 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
OfigenskiВерсия сервера: 5.5.20-logПопробуйте обновиться до последней стабильной из ветки 5.5.*. Еще есть смутное подозрение, что где-то там у вас попадаются непечатные символы, которые либо не видны, либо выглядят как пробелы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 16:01:14 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
miksoftOfigenskiВерсия сервера: 5.5.20-logПопробуйте обновиться до последней стабильной из ветки 5.5.*. Еще есть смутное подозрение, что где-то там у вас попадаются непечатные символы, которые либо не видны, либо выглядят как пробелы. К сожалению обновлять что не вариант, я работаю в компании! А вот по поводу непечатных символов щас буду ковырять.............. (но если не сложно ответь те на встречный логичный вопрос, в этом случае не странно ли что в phpMyAdmin и в MySQL Workbench запрос работал, разве эти же непечатные символы не должны были и там все испортить??? Я же запрос один раз написал в Workbench и во все остальные дела его копипастил ) В любом случае я очень Вам благодарен за все ваши ответы, свои то мысли на данный момент кончались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 16:15:05 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
Ofigenski Какие мысли?? Очень простые - предоставляйте в студию копипаст текста запроса и ответа сервера ОДНОВРЕМЕННО, одним копипастом, прямо из окна консоли. А не по частям, когда нет гарантии, что одно соответствует другому, и не пытались соотнести текст запроса с сообщением ODBC-драйвера.. Чтобы мы видели ровно те байты, которые получил на вход сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 16:22:04 |
|
||
|
В PHP не работает запрос, работающий в phpMyAdmin
|
|||
|---|---|---|---|
|
#18+
Ofigenskimiksoftпропущено... Попробуйте обновиться до последней стабильной из ветки 5.5.*. Еще есть смутное подозрение, что где-то там у вас попадаются непечатные символы, которые либо не видны, либо выглядят как пробелы. К сожалению обновлять что не вариант, я работаю в компании!Ну обновляйте всей компанией OfigenskiА вот по поводу непечатных символов щас буду ковырять.............. (но если не сложно ответь те на встречный логичный вопрос, в этом случае не странно ли что в phpMyAdmin и в MySQL Workbench запрос работал, разве эти же непечатные символы не должны были и там все испортить??? Я же запрос один раз написал в Workbench и во все остальные дела его копипастил )Сложно сказать. Возможно, эти программы умеют фильтровать эти символы. Было давно как-то раз, когда из-за различия в переносах строк в windows/*nix-системах вылезали эти лишние символы. Тоже местами - где-то была ошибка, а где-то - нет. Ofigenskiсвои то мысли на данный момент кончались.Да у меня тоже :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 16:22:26 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38463147&tid=1835692]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 409ms |

| 0 / 0 |
