为什么php调用存储过程返回多个结果集,总要多出一个结果集
比如
$db->query("SET NAMES UTF8");
if($db->real_query("call sp_test()")){
do{
echo 'bp';
if($result = $db->store_result()){
while ($row = $result->fetch_assoc()){
array_push($rows, $row);
}
$result->close();
}
}while($db->next_result());
}
$db->close();
你会发现假设你返回1个结果集,会打出2个bp,2个结果集就会echo出3个bp,但如果不写存储,直接写语句,就正常,不会多出一个,求大神指点迷津!
回复讨论(解决方案)
这不是很正常吗?不然你要 if($result = $db->store_result()){ 干什么?
这不是很正常吗?不然你要 if($result = $db->store_result()){ 干什么?
您好,可是直接写语句在php里不会多出一个,比如select 1;select 2;
他就打出2个bp,这是为什么呢,存储过程里也写以上2句就会打出3个
php 的数据库函数不支持形如 select 1;select 2; 这样的查询,所以不能作为参照系
do{ if($result = $db->store_result()){ } }while($db->next_result());
不过在没有改正之前,你还是必须这么做
php 的数据库函数不支持形如 select 1;select 2; 这样的查询,所以不能作为参照系
do{ if($result = $db->store_result()){ } }while($db->next_result());
不过在没有改正之前,你还是必须这么做
非常感谢
因为你echo写在了 if($result = $db->store_result()){ 的前面,而有没有结果是要看 if($result = $db->store_result()){ 的判断结果才知道,所以肯定有2个结果的时候, if要判断3次,也就是你说的3次bp
其实简单说,你的困惑在于
$i = 1;$max = 2;while(true) { echo "A"; // 这里肯定会输出3个A if($i > $max) { break; } $i++; }
php 的数据库函数不支持形如 select 1;select 2; 这样的查询,所以不能作为参照系
do{ if($result = $db->store_result()){ } }while($db->next_result());
不过在没有改正之前,你还是必须这么做
大侠,不好意思,我还想问下,$result = $db->store_result(),这句话到底是什么意思,这是赋值运算,怎么就能返回bool值呢?
$db->store_result() 返回一个查询结果资源
当没有了的时候,返回的就是空了(null)
$db->store_result() 返回一个查询结果资源
当没有了的时候,返回的就是空了(null)
那$result =null 这个返回的是false吗?
还真是false,一个赋值表达式都能返回false,php真神奇
是我理解错了,运来if里面判断的仅仅是$result的值!!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Alipay Php ...

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.
