gpt4 book ai didi

php - 存储过程停止了 PHP 页面 MySql 中的其他查询

转载 作者:行者123 更新时间:2023-11-30 22:29:59 26 4
gpt4 key购买 nike

我改变了我的代码

    $query = "SELECT first_id, first, webpage_id FROM first WHERE first= ?";
$stmt = $connect->prepare($query);
$stmt->bind_param('s', $first);
$stmt->execute();

$result = $stmt->get_result();

while($row = $result->fetch_array()){
$first_id = $row['first_id'];
$first = $row['first'];
$webpage_id = $row['webpage_id'];

echo '<div class="yellow container">
<div class="alt">
<div class="first_name left"><h1>'.$row['first'].'</h1></div>
<div>
<div class="add_sub"><input type="button" class="addsub" data-id="'.$row['first_id'].'" /></div>
</div>
</div>';

$query = "SELECT webpage_id, url, explanation FROM webpage WHERE webpage_id= ?";
$stmt = $connect->prepare($query);
$stmt->bind_param('i', $webpage_id);
$stmt->execute();
$result_ce = $stmt->get_result();

进入这个是为了在我的网站中使用存储过程。我的第一个代码运行良好,但第二个代码在正确执行存储过程后停止工作。它说 Call to a member function bind_param() on boolean on line 42

$result = $connect->query("CALL selectfirst('$first')");

// all codes above stays same

while($row = $result->fetch_array()){
$first_id = $row['first_id'];
$first = $row['first'];
$webpage_id = $row['webpage_id'];

echo '<div class="yellow container">
<div class="alt">
<div class="first_name left"><h1>'.$row['first'].'</h1></div>
<div>
<div class="add_sub"><input type="button" class="addsub" data-id="'.$row['first_id'].'" /></div>
</div>
</div>';

$query2 = "SELECT webpage_id, url, explanation FROM webpage WHERE webpage_id= ?";
$stmt = $connect->prepare($query2);
$stmt->bind_param('i', $webpage_id); //line 42
$stmt->execute();
$result_ce = $stmt->get_result();

我的存储过程由 phpmyadmin gui 编写。我刚刚编写了 SELECT * FROM first = ufirst; 并单击了创建。也许有问题?

重要!! 我在第二个 sql 之后使用了 trigger_error($connect->error.[$query2]") 并且页面显示 *Commands out of同步;你现在不能运行这个命令[SELECT webpage_id, url, explanation FROM webpage WHERE webpage_id=53]* 这是什么意思?

最佳答案

当您调用存储过程时,它可能会产生多个结果集,您必须在运行另一个查询之前释放所有结果集,在调用存储过程获得结果后添加此行:

$connect->next_result();

而不是使用 while($row = $result->fetch_array()){...} 您可以使用 fetchAll 并在结果集数组中迭代,因为当您使用next_result 时,结果资源将会丢失。

关于php - 存储过程停止了 PHP 页面 MySql 中的其他查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34141693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com