Вопрос по PHP+MySQL

Змінюється світ, змінюємося ми, змінюються наші велосипеи і тільки ДЕМОКРАТІЇ на Велокиєві не було та не буде.
Аватар користувача
lach
*********
Повідомлень:2289
З нами з:12.4.06 21:50
Skype:lachuzhnikov
Стать:чол
Звідки:Kyiv
Вопрос по PHP+MySQL

Повідомлення lach » 8.6.11 11:07

Кто-то может проверить...
Суть прикола:

Код: Виділити все

mysql> set @LN = 'lach'; select ID, FIRSTNAME from TT_USER where LOGIN=@LN\g Query OK, 0 rows affected (0.00 sec) +----+--------------------+ | ID | FIRSTNAME | +----+--------------------+ | 1 | Святослав | +----+--------------------+ 1 row in set (0.00 sec)
не работает в PHP если используем MySQL-переменные (@xxx).

Можете у себя проверить?

З.Ы,
Зачем нужно - в файлах лежат унифицированные SQL-запросы.
Код, по-факту, переопределяет значения переменных, потом выполняется шаблонный запрос считанный из файла.
При использовании mysql_query() выдается ошибка на синтаксис, мол не понимает все что до select...
Пятая ходка, условный срок. UT3UGV

Аватар користувача
Vick
* * * * *
Повідомлень:1402
З нами з:25.3.05 16:25
Skype:vick.mellon
Стать:чол
Звідки:Киев, Позняки

Re: Вопрос по PHP+MySQL

Повідомлення Vick » 8.6.11 12:07

Не, так просто не катит :)
Для этого нужно делать prepare и bind, но, насколько я помню, стандартная либа с функциями mysql_* не поддерживает такого.
Тебе нужно использовать что-то другое, например экстеншен mysqli или PDO..

Ну или в виде костыля писать парсер таких конструкций, который будет генерить обычные запросы, подставляя значения переменных...
Жираф — это лошадь, выполненная по всем требованиям заказчика.

Аватар користувача
lach
*********
Повідомлень:2289
З нами з:12.4.06 21:50
Skype:lachuzhnikov
Стать:чол
Звідки:Kyiv

Re: Вопрос по PHP+MySQL

Повідомлення lach » 8.6.11 13:56

Спсб. Кто-то может родить работоспособную "козу", аналогичную поставленной задаче?
На том же mysqli... Примеры которые на сайте - они написаны с точки зрения подстановки значений, но "SQL запрос" там тоже 1...
Пятая ходка, условный срок. UT3UGV

Аватар користувача
Lone Wolf
* * * *
Повідомлень:611
З нами з:2.4.09 21:04
Skype:vadya-kun
Стать:чол
Звідки:Вишгород - Київ, Оболонь

Re: Вопрос по PHP+MySQL

Повідомлення Lone Wolf » 8.6.11 17:08

Не совсем понял зачем mysql переменные?
Что-то типа такого не подоходит?

Код: Виділити все

$sql = sprintf("select ID, FIRSTNAME from TT_USER where LOGIN='%s'","lach"); mysql_query($sql);

Код: Виділити все

(__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ...."Have you mooed today?"...

Аватар користувача
lach
*********
Повідомлень:2289
З нами з:12.4.06 21:50
Skype:lachuzhnikov
Стать:чол
Звідки:Kyiv

Re: Вопрос по PHP+MySQL

Повідомлення lach » 8.6.11 20:44

Вулф, перефразирую... Если MySQL поддерживает функции на стороне сервера, а PHP не поддерживает несколько утверждений (statements) в рамках 1 SQL-запроса - как выкручиваются?!
Ранее данная фигня работала, правда с MSSQL... MSSQL драйвер в PHP поддерживает последовательность команд в рамках одного запроса.

10 лет назад MySQL НЕ поддерживал ни вложенных запросов, ни функций... Сейчас он оброс конфетками от коммерческих СУБД, а один из самых популярных интерпретаторов (PHP) типа не поддерживает этот функционал...
Это мой ход мыслей и вероятно он ошибочный. Потому что либо есть возможность выкрутиться, либо веб-программисты используют методы 10 летней давности и нифига не используют нововведений в MySQL.

Была озвучена мысль чтобы устанавливать перманентное соединение и выполнять последовательность запросов, не обрататывая ответ...

Скорей всего кто-то же юзает server-side функции :)

Ну же, мысли в студию!
Тут же свора дизайнеров и веб-программистов :)
Студенты на крайняк!
Пятая ходка, условный срок. UT3UGV

Аватар користувача
Lone Wolf
* * * *
Повідомлень:611
З нами з:2.4.09 21:04
Skype:vadya-kun
Стать:чол
Звідки:Вишгород - Київ, Оболонь

Re: Вопрос по PHP+MySQL

Повідомлення Lone Wolf » 8.6.11 22:47

1. Запроса выполняется два,а не один. точка запятая делиметер - запросов. Вы можете там хоть 10 штук написать это будет 10 отдельных запросов.
2. mysql_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified link_identifier.

Посему нужно отосылать два подряд mysql_query() и перманетное сойдениние тут не к чему. Текущее сойденине живо пока не отработает весь скрипт.
Также можно использывать транзакции, если таблицы innoDB..

Также в случае innoDB можно зранимую процедуру создать, и вызвать ее одним запросом, но в данной задаче они лишняя..

Код: Виділити все

(__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ...."Have you mooed today?"...

Аватар користувача
lach
*********
Повідомлень:2289
З нами з:12.4.06 21:50
Skype:lachuzhnikov
Стать:чол
Звідки:Kyiv

Re: Вопрос по PHP+MySQL

Повідомлення lach » 9.6.11 19:35

Вульф, а поподробнее про транзакции и Inno DB можешь краткую лекцию озвучить :)))
Кстати, не пробовал а сейчас немного другим занят... MySQL процедуры в БД сохраняет перманентно?
Пятая ходка, условный срок. UT3UGV

Аватар користувача
Lone Wolf
* * * *
Повідомлень:611
З нами з:2.4.09 21:04
Skype:vadya-kun
Стать:чол
Звідки:Вишгород - Київ, Оболонь

Re: Вопрос по PHP+MySQL

Повідомлення Lone Wolf » 9.6.11 21:57

Вульф, а поподробнее про транзакции и Inno DB можешь краткую лекцию озвучить :)))
Кстати, не пробовал а сейчас немного другим занят... MySQL процедуры в БД сохраняет перманентно?
Кончено постоянно вот почитай http://dev.mysql.com/doc/refman/5.1/en/ ... edure.html
Краткая выдержка

Код: Виділити все

mysql> CREATE FUNCTION hello (s CHAR(20)) mysql> RETURNS CHAR(50) DETERMINISTIC -> RETURN CONCAT('Hello, ',s,'!'); Query OK, 0 rows affected (0.00 sec) mysql> SELECT hello('world'); +----------------+ | hello('world') | +----------------+ | Hello, world! | +----------------+ 1 row in set (0.00 sec)
т.е. когда создашь достаточно одно запроса mysql_query('SELECT hello("world")') ну и дальше по стандарту.. хотя с такими процедурами(что возращают что-то) я не работал

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

Код: Виділити все

mysql_query('START TRANSACTION'); foreach($sql as $st) { mysql_query($st); if(mysql_errno()!=0) { mysql_query('ROLLBACK'); return FALSE; } } mysql_query('COMMIT'); return true;
это уместно при INSERT-UPDATE запросах
в моем случае, это было создание нескольких связаных между собой по ключу, записей в нескольких таблицах. При чем они обязаны были существовать все три.
так вот, как видно в случае неудачи на каком-то жтапе, я откатывал все вставки.

Код: Виділити все

(__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ...."Have you mooed today?"...

Аватар користувача
J A Z Z
* * * * *
Повідомлень:1986
З нами з:31.7.06 08:41
Стать:чол
Звідки:Киев, центр...тупо центр

Re: Вопрос по PHP+MySQL

Повідомлення J A Z Z » 10.6.11 10:26

и зачем я в эту тему зашел...
вы все просто тупо завидуете что я тренируюсь а вы нет!
"Будьте чуточку оригинальнее при выборе аватарки"©
кто не возвращался с "Голубых озер"© в субботу в 16:30 после "Ночных велороллерских"© - тот не матраснег

Аватар користувача
Anton_gotos
Модератор
Повідомлень:4591
З нами з:11.7.07 18:52
Стать:чол

Re: Вопрос по PHP+MySQL

Повідомлення Anton_gotos » 10.6.11 10:28

и зачем я в эту тему зашел...
тоже призадумался, что я здесь делаю :duma:

Аватар користувача
Muton
* * * * *
Повідомлень:1103
З нами з:16.1.05 22:32
Стать:чол
Звідки:Киев, Шулявка

Re: Вопрос по PHP+MySQL

Повідомлення Muton » 10.6.11 15:04

Аж прям комплекс неполноценности проявился. Я в школе на информатике простейший алгоритм изобразить не смог. :gerl:

Аватар користувача
Vick
* * * * *
Повідомлень:1402
З нами з:25.3.05 16:25
Skype:vick.mellon
Стать:чол
Звідки:Киев, Позняки

Re: Вопрос по PHP+MySQL

Повідомлення Vick » 10.6.11 15:43

Лач, ты или троллишь, или тебя в гугле забанили!... #diablo
Жираф — это лошадь, выполненная по всем требованиям заказчика.

Аватар користувача
lach
*********
Повідомлень:2289
З нами з:12.4.06 21:50
Skype:lachuzhnikov
Стать:чол
Звідки:Kyiv

Re: Вопрос по PHP+MySQL

Повідомлення lach » 10.6.11 23:04

Вулф, спасибо за примеры! :)


Вик, не троллю, просто тут коллективный разум гораздо эффективнее :)
Да и время дико экономит :)
Пятая ходка, условный срок. UT3UGV

Аватар користувача
Lone Wolf
* * * *
Повідомлень:611
З нами з:2.4.09 21:04
Skype:vadya-kun
Стать:чол
Звідки:Вишгород - Київ, Оболонь

Re: Вопрос по PHP+MySQL

Повідомлення Lone Wolf » 13.6.11 20:27

Вик, не троллю, просто тут коллективный разум гораздо эффективнее :)
Да и время дико экономит :)
Согласен, только все-таки форум не профильный.
я обычно по таким воросам на коденет.ру консультируюсь )

Код: Виділити все

(__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ...."Have you mooed today?"...


Повернутись до “Пісочниця”

Хто зараз онлайн

Зараз переглядають цей форум: Немає зареєстрованих користувачів і 208 гостей