note 75826 added to function.mysqli-multi-query
| From: | pwn_st at mail333 dot com | Date: | Sun, 17 Jun 2007 19:41:03 +0000 |
| Subject: | note 75826 added to function.mysqli-multi-query | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-127513@lists.php.net to get a copy of this message | ||
СвÑзалÑÑ Ñ mysqli ÑолÑко Ñади
mysqli_multi_query, как показала пÑакÑика
иÑполÑзование конÑÑÑÑкÑии if
(mysqli_multi_query($link, $query)) { ...} (как Ñие опиÑано
в пÑимеÑе в ÑÑководÑÑве
http://lv.php.net/manual/ru/function.mysqli-multi-query.php)
не Ð¸Ð¼ÐµÐµÑ ÑÑÑла, Ñак как
оÑибка возникÑÐ°Ñ Ð² ÑеÑедине
запÑоÑа не бÑÐ´ÐµÑ Ð¾Ð±ÑабоÑана.
ÐбÑÑно ÑнаÑала
конÑÑолиÑÑÑÑÑÑ Ð¾Ñибки, а
поÑом Ñже извлекаÑÑÑÑ
даннÑе, но
(ÑпаÑибо пиÑавÑим mysqli!)
еÑÑеÑÑÐ²ÐµÐ½Ð½Ð°Ñ ÐºÐ¾Ð½ÑÑÑÑкÑиÑ
Ñипа
$Query = 'select...;select....;select...;select.....;select......';
mysqli_multi_query($ConnId,$Query);
do {
// CHEK ERROR
if (mysqli_errno($ConnId)>0){
trigger_error("MySQLi Error: (".mysqli_errno($ConnId).")
".mysqli_error($ConnId).", ERROR);
}
// GET DATA
if ($Result = mysqli_store_result($ConnId)) {
where ($Items=mysqli_fetch_assoc($Result)) {
.....
}
mysqli_free_result($Result);
}
} while (mysqli_next_result($ConnId));
ÑабоÑаÑÑ Ð½Ðµ бÑдеÑ, Ñак как
Ñикл do....whlie пÑеÑвеÑÑÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ на
Ñом запÑоÑе коÑоÑÑй вÑзвал
оÑÐ¸Ð±ÐºÑ Ð¸
ÑÑнкÑÐ¸Ñ trigger_error не полÑÑиÑ
ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐµÑли оÑибки бÑли
в поÑледÑÑÑиÑ
запÑоÑаÑ
!
ХоÑÑ ÑÑо и вÑглÑÐ´Ð¸Ñ ÑовÑем
"не логиÑно", но оÑибки
надо ловиÑÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ ÐРи
ÐÐСÐÐ Ñикла извлекаÑÑего
даннÑе:
$Query = 'select...;select....;select...;select.....;select......';
mysqli_multi_query($ConnId,$Query);
// CHEK FIRST ERROR
if (mysqli_errno($ConnId)>0){
trigger_error("MySQLi Error: (".mysqli_errno($ConnId).")
".mysqli_error($ConnId).", ERROR);
}
do {
// GET DATA
if ($Result = mysqli_store_result($ConnId)) {
where ($Items=mysqli_fetch_assoc($Result)) {
.....
}
mysqli_free_result($Result);
}
} while (mysqli_next_result($ConnId));
// CHEK NEXT ERROR
if (mysqli_errno($ConnId)>0){
trigger_error("MySQLi Error: (".mysqli_errno($ConnId).")
".mysqli_error($ConnId).", ERROR);
}
СпаÑибо конеÑно за mysqli_multi_query, но
по мне нÑжен пÑоÑÑой аналог
коÑоÑÑй пÑоÑÑо позволÑеÑ
ÑазделиÑÐµÐ»Ñ ;
в запÑоÑе и возвÑаÑаеÑ
ÑолÑко ÑамÑй поÑледний
ÑезÑлÑÑаÑ. Ðбо еÑли в
запÑоÑе кÑÑа команд SQL
коÑоÑÑе ÑовÑем
ниÑего не вÑводÑÑ, а под
ÑÐ¸Ð½Ð¸Ñ select, ÑазгÑебаÑÑ ÑÑо
Ñиклом do...while лиÑнÑÑ ÑабоÑа. Ðли
Ñж Ñ
оÑÑ Ð±Ñ
пÑедÑÑмоÑÑели Ð±Ñ ÐºÑоме
mysqli_next_result ÑÑнкÑÐ¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑÑÑÑ
пÑинÑдиÑелÑно
пеÑемеÑаÑÑÑÑ Ðº конÑÑ ÑпиÑка
ÑезÑлÑÑаÑов запÑоÑа!
----
Server IP: 81.94.227.69
Probable Submitter: 82.119.150.194
----
Manual Page -- http://www.php.net/manual/en/function.mysqli-multi-query.php
Edit -- https://master.php.net/note/edit/75826
Del: integrated -- https://master.php.net/note/delete/75826/integrated
Del: useless -- https://master.php.net/note/delete/75826/useless
Del: bad code -- https://master.php.net/note/delete/75826/bad+code
Del: spam -- https://master.php.net/note/delete/75826/spam
Del: non-english -- https://master.php.net/note/delete/75826/non-english
Del: in docs -- https://master.php.net/note/delete/75826/in+docs
Del: other reasons-- https://master.php.net/note/delete/75826
Reject -- https://master.php.net/note/reject/75826
Search -- https://master.php.net/manage/user-notes.php