Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
У меня простой наверное для опытных людей вопрос по mysqli, но трудно найти в интернете, как не формулирую - всё не то в поиске: Вопрос: Собственно вот он ) Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Вот такая проблема - привёл упрощённый пример, только для вашего удобства, но на деле внешний запрос у меня выбирает данные в цикле, а к каждой его записи нужно ещё подвыбирать кое-что, поэтому необходимо делать именно так - пока один запрос активен, выбирать другие данные. Не понимаю что этому мешает. Не может быть чтобы было категорически нельзя... ну копается он в базе, выводит, ну допустим заблокировал таблицу s_ankets, но другие то свободны... подскажите пожалуйста как делать такие выборки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 19:04 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Nikifor_PS, А мануал читать? http://php.net/manual/en/mysqli.query.php If you use MYSQLI_USE_RESULT all subsequent calls will return error Commands out of sync unless you call mysqli_free_result() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 19:57 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Melkij, это неудобно, форум ведь для помощи, мануал то я и без форума могу почитать, только время нет и костьми на нём ложиться не охото, на английском тем более - гемороя много, ну пусть не вам, но мне. может подскажите так... я б если б знал так бы и сделал и никогда не отправлял бы несчастных замучившихся программистов к мануалам, я считаю - это саддизм, разновидность гистаповских пыток ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 20:41 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
MelkijNikifor_PS, А мануал читать? http://php.net/manual/en/mysqli.query.php If you use MYSQLI_USE_RESULT all subsequent calls will return error Commands out of sync unless you call mysqli_free_result() Спасибо большое ) извините ) у меня просто большая аллергия на мануалы и когда отсылают к ним ) потому что и так трудно что-то найти... но по английски всё же понимаю немного и.. в общем небуферизованный запрос он так не делает, а буферезованный - пожалуйста ) хотя и не понял почему? какая ему разница? Может, если можете объясните пожалуйста этот момент. не охото весь мануал разбирать, ломать мозг - скучно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 20:48 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Nikifor_PS, буферизованный запрос освобождает коннект к mysql для дальнейшей работы. Небуферизованный - удерживает коннект за запросом. Потому что он не буферизуется. А исполняются запросы в одном соединении только последовательно. авторломать мозг - скучно. Вы ошиблись профессией. Хинт: php мануал поддерживает официальные переводы на кучу других языков. Раздел для этого метода вполне переведён на русский. Хинт2: 90% вероятности, что ваша задача целиком решается одним запросом. Хинт3: читайте, что значит код, который вы пишете. Хинт4: настройте уже в конце концов кидание ошибок MYSQLI_REPORT_STRICT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2017, 22:08 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Melkij, ну вот я и не мог понять почему только последовательно выполняются запросы и пока коннект одного, другому нельзя подключиться к другой таблице. ну я не так как вы, не могу мануалами зачитываться до поздна в захлёб, для меня это скучно. Х: согласен Х2: не решается. Х3: откуда вы знаете что я даже не знаю код который пишу? ясновидящий! Х4: кому это нужно, вам или мне? Судя по тому что вас это беспокоит, вам значит нужно установить этот кидатель ошибок мне на комп ) потому что из ваших слов не следует что это нужно мне ) а если серьёзно.. если вы обратитесь за помощью, а какой-нибудь умник вам формально напишет ответ в геморной форме, потом согласится его расшифровать и каждый раз буде вас окунать мордой в унитаз, то вы подумаете, а нафиг мне вообще его помощь, и он сам? лучше я долго поищу ответ сам чем такая блинская помощь. Одно радует - бывает вообще не помощь а просто отсылка к мануалам, но это ... уже клиника. За помощь спасибо ) за бяки - вам бяки в ответ - заслуживаете то и другое, потому что так сами говорите ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 05:50 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
но спасибо всё-таки намного больше ) выручили ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 05:55 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Nikifor_PSХ2: не решается.А Вы озвучьте всю задачу. Желательно совсем без своих попыток её решения, но непременно с полным описанием исходных данных и желаемого результата. И, с учётом того, что тут форум по MySQL - без всякоразной Php-шелухи. Nikifor_PSза бяки - вам бяки в ответ - заслуживаете то и другое, потому что так сами говорите Да нам как бы похрен - не у нас проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 08:16 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Akina, задачу то целиком озвучивать, я берегу время и силы отвечающих людей, поэтому привожу упрощённый пример. то что одним запросом не решается - это точно. доказывать долго было бы. бесполезно защищать предыдущего оратора, он не прав был, это очевидно, правда я тоже был не многим лучше, так нельзя конечно.. но он мне здорово помог всё же и сэкономил время. а вы умеете быть искренне благодарным за помощь представленную в таком нелицеприятном виде, но помощь всё же (что всё таки решили вашу проблему)? ну - это слабый аргумент, вам всё равно когда не у вас проблемы, значит будут у вас - будет не всё равно, тогда будете на этом месте.. будете недовольны тем что делаете сами.. тогда выходит, что я прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 09:07 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
думаю, тему можно прикрыть, она уже решённая. нехочется чтобы писали из оскорблённых чувств те, кого вопрос не касается, как Akina ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 09:15 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Nikifor_PSну вот я и не мог понять почему только последовательно выполняются запросы и пока коннект одного, другому нельзя подключиться к другой таблице. Потому что негде хранить результат запроса - вы запретили его буферизовать. Значит он где? На стороне базы. Раз он на стороне базы, значит база ещё не закончила работу с этим запросом (т.е. не отдала весь результат клиенту) и не будет делать другой запрос. Емнип, база может на момент выдачи первой строки результата даже не завершить выполнение запроса. Nikifor_PSХ3: откуда вы знаете что я даже не знаю код который пишу? ясновидящий! Потому что явным образом изменили (сами!) дефолтное поведение метода query не озаботившись пониманием ответа на вопрос "зачем эта гайка нужна" и "на что это повлияет". Разумеется такое поведение спрашивающего отбивает желание писать подробный ответ, тратить своё время. Но я же добрый, всё равно сходил в мануал и стянул оттуда точную цитату с предупреждением о наблюдаемом эффекте вместо того чтобы просто закрыть вкладку. Nikifor_PSХ4: кому это нужно, вам или мне? Судя по тому что вас это беспокоит, вам значит нужно установить этот кидатель ошибок мне на комп ) потому что из ваших слов не следует что это нужно мне ) Спасибо, на мой взгляд сам mysqli неудобен. PDO приятнее, особенно с именованными prepared statements. Но mysqli тоже умеет кидаться нормальными исключениями при получении ошибок. Вы же даже не проверяете, успешно ли завершаются запросы. Иначе написали бы нормальное сообщение об ошибке, а не вторичное следствие. Не посмотрели, почему там non-object. Зачем так? Как так можно? И вот опять не озаботились вопросом, что же вам советует случайно проходящий мимо опытный php-разработчик в разделе вообще-то базы данных, а не php. Не удивлюсь, если даже error_reporting у вас выключен в какое-нибудь несуразное значение вместо нормального E_ALL разработчика (или -1 для музейных версий). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 09:41 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Melkij, ну, это я понял, не понял только: ну и выбирала бы спокойно основной запрос и параллельно выбрала другие данные из другой таблицы, чем один коннект другому мешает, почему только последовательно.. да я просто и не знал о его таком поведении, а не так чтобы знал и явным образом изменил, всё совсем не так было : ) добрый не оскорбляет помогая, иначе какая это помощь? я же вас ничем не обижал изначально верно, чтобы вам меня сходу разносить по пустякам. Просто помогая вроде бы, вы ругаясь (ещё и не всегда в точку) вы одновременно вредите, просто человек допустим сел в хор настроении встал с плохим - и где помощь? лучше бы он сам помучался, таким плохим не было бы, допустим. в моём случае ладно, я не сильно обидчивый, но другим часто так бывает. Ну я ж не знал о таком кидателе ошибок вообще ничего : ) если б знал то настроил. Хорошо что вы мне его подсказали. Вы думаете он опытный? я думаю обсерать опытный - это сразу видно (возможно у него 15000 сообщений все такие), а вот по программированию, ну, опытный наверное ))) а как я по его должен был формулировать вопрос? я же не могу получить эту ошибку только на mysql, она в php, поэтому, ну, вы опытный, но он то глупость сказал Ну, можете написать ещё что-то а можно и закончить... мне как-то уже надоела дискуссия. я вам правда очень благодарен за помощь. Спасибо большое! Это честно, мне хоть теперь не мучиться пол дня.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 10:31 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Nikifor_PSУ меня простой наверное для опытных людей вопрос по mysqli, но трудно найти в интернете, как не формулирую - всё не то в поиске: Вот такая проблема - привёл упрощённый пример, только для вашего удобства, но на деле внешний запрос у меня выбирает данные в цикле, а к каждой его записи нужно ещё подвыбирать кое-что, поэтому необходимо делать именно так - пока один запрос активен, выбирать другие данные. Не понимаю что этому мешает. Не может быть чтобы было категорически нельзя... ну копается он в базе, выводит, ну допустим заблокировал таблицу s_ankets, но другие то свободны... подскажите пожалуйста как делать такие выборки? Если через соединение делается запрос, то оно занято на всё время выполнения этого запроса, до момента окончания выборки данных или отмены завершения выполнения запроса (есть определённые вызовы в CLI API, которые можно сделать не всегда, а в основном в момент, когда клиент должен получать очередную порцию данных с сервера). Если тебе нужно выполнять другой запрос в это же время, то нужно для этого создать ещё одно соединение с базой данных. Принципиально по-другому нельзя. Учти, что новый запрос будет выполняться ещё и в другой транзакции, и он может не видеть те данные, что вернулись первым запросом (хотя в MySQL это и не всегда актуально). Но вовсе не обязательно выполнять другой запрос ВМЕСТЕ с данным. Можно выполнить другой запрос ПОСЛЕ данного, т.е. выбрать все данные, сохранить в какой-то структуре в памяти, а затем уже пробежаться по ним и выполнить какие-то другие запросы. (это глупый способ или способ когда по-другому никак) выполнить другой запрос ОДНОВРЕМЕННО с данным, т.е. добавить выборку нужных дополнительных данных в основной запрос. Это -- более умный и правильный с точки зрения архитектуры способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 12:40 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Nikifor_PSMelkij, ну вот я и не мог понять почему только последовательно выполняются запросы и пока коннект одного, другому нельзя подключиться к другой таблице. 90% клиентов СУБД устроены именно так. Запросы выполняются строго последовательно и синхронно между клиентом и сервером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 12:42 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
MasterZiv выполнить другой запрос ОДНОВРЕМЕННО с данным, т.е. добавить выборку нужных дополнительных данных в основной запрос.. JOIN если что ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 12:46 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, спасибо большое за развёрнутый ответ, теперь всё ясно. я решил сделать буферизованый запрос, хоть и немного жаба давит из-за того что ждать пока загрузится, но другие способы ещё сложней, ну ничего, может всё будет быстро и зря так думаю. К сожалению не получается добавить вызовы в основной запрос, т.к. это проверка данных на достоверность из справочника (проверка на инъекцию), из формы фильтра выбора из выпадающего списка поступает некое название, и нужно взять данные справочника и сравнить, если найден (инъекции нет), то фильтровать по нему, если не найден в справочнике - игнорировать этот параметр. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2017, 17:39 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Nikifor_PS, ну и бред же ты несёшь... ну ладно, тебе виднее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2017, 07:40 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Nikifor_PSне получается добавить вызовы в основной запрос, т.к. это проверка данных на достоверность из справочника (проверка на инъекцию), из формы фильтра выбора из выпадающего списка поступает некое название, и нужно взять данные справочника и сравнить, если найден (инъекции нет), то фильтровать по нему, если не найден в справочнике - игнорировать этот параметр.Не получается - не значит невозможно. Более того - не просто возможно, а почти элементарно. Если схематично, то: Код: sql 1. 2. 3. 4. 5. Может, чуть сложнее, если реализовывать реальную задачу, а не абстрактную модель. И незачем в таком было говорить, что мол, Nikifor_PSто что одним запросом не решается - это точно. доказывать долго было бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2017, 07:40 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Nikifor_PS, т.к. это проверка данных на достоверность из справочника (проверка на инъекцию), из формы фильтра выбора из выпадающего списка поступает некое название, и нужно взять данные справочника и сравнить, если найден (инъекции нет), то Спасибо! Невозможно sqlем определить, была ли SQL injection. просто и потому хотя бы, что если она была, то база уже сломана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2017, 07:43 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, примите валерьянки, тогда не будет вам казаться что везде бред ) это просто настроение (негативные эмоции), как станете доброжелательным - сразу пройдёт ) не будьте такими напряжёнными друзья мои! : ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2017, 15:09 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
PS: кто вам сказал что я sql-ем проверяю инъекцию? Ладно... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2017, 15:12 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Akina, всё несколько сложнее.. поэтому и не пишу.. то что вы описали - действительно элементарно, у меня другая ситуация. Ладно, будте здоровы все, простите если где кого обидел ) кто помог - за помощь спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2017, 16:14 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Nikifor_PSMasterZiv, примите валерьянки, тогда не будет вам казаться что везде бред ) это просто настроение (негативные эмоции), как станете доброжелательным - сразу пройдёт ) не будьте такими напряжёнными друзья мои! : ) Я пробовал -- не помогает. Всё равно везде бред. Я доброжелателен. Если бы это было не так, я бы вас всех просто бы послал. А я вместо этого вам пытаюсь что-то втолковать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2017, 16:39 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
Nikifor_PSPS: кто вам сказал что я sql-ем проверяю инъекцию? Ладно... ) Nikifor_PSК сожалению не получается добавить вызовы в основной запрос, т.к. это проверка данных на достоверность из справочника (проверка на инъекцию), ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2017, 16:40 |
|
||
|
как во время текущей выборки выполнять другие запросы?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, тогда лучше оставить, если из-за эмоций вместо помощи получается вред, тогда лучше не помогать, вам самому будет спокойнее. Если вы подходите с мыслью что вы конечно умный, другие все дебилы, то это сразу идёт на вред вам и им. Вы разбираетесь в программировании очень хорошо. Но это одна маленькая область, это не делает умным, всего лишь знание одной области. Другие могут совсем не знать его ни химии физики, даже что земля круглая (неважно), но по жизни, быть лучше (умнее) всех нас вместе взятых. я так считатю. сам программирую больше 10 лет, это не критерий умный или глупый - ничего особенного в этом нет. Акина (если не ошибаюсь - такой дедушка из Кеншина, живущий в Киото - классный персонаж), то о чём вы писали, тоже не для всех элементарно, для многих это тоже может быть вполне сложно сложно. Бывайте здоровы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2017, 17:37 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39487899&tid=1830538]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 381ms |

| 0 / 0 |
