【发布时间】:2015-12-27 14:56:22
【问题描述】:
我正在尝试创建一个while() 循环,从数据库中获取一些数据,然后我需要创建另一个循环,该循环基于最后一个while() 循环给出的变量之一。
据我所见,没有错字,但我不断收到
致命错误:在第 77 行的布尔值中调用成员函数 bind_param()。”
这是代码:(结构更好的图片:http://imgur.com/0dFhoRb)
<?php
$sql = 'SELECT raised_id, user_id, project_id, amount FROM cf_donations ORDER BY raised_id DESC LIMIT 6';
$stmt = $connection->prepare($sql);
$stmt->bind_result($rid, $uid, $pid, $amount);
$stmt->execute();
while($stmt->fetch()){ ?>
<?php
$userinfoquery = 'SELECT first_name, last_name, profile_image FROM cf_users WHERE user_id = ?';
$stamt = $connection->prepare($userinfoquery);
$stamt->bind_param('i', $uid);
$stamt->bind_result($firstname, $lastname, $image);
$stamt->execute();
while($stamt->fetch()){ ?>
<div class="donationDiv">
<p><?= $amount ?>$</p>
</div>
<?php } ?>
<?php } ?>
非常感谢任何帮助!
【问题讨论】:
-
我在这里看到一些 php MySQL 库难以同时处理多个结果集。会是这样吗?还是您的查询中没有参数“i”?它们通常不是
:i的形式吗? -
您的
prepare可能失败或您的连接失败使您的$stamt等于false -
在
$stamt->bind_param('i', $uid);之前尝试print_r($connection);和print_r($stamt);那些应该是打印出来的对象 -
所有参数和连接都是正确的,如果我将while循环分开放置,它们就可以正常工作。 (当然除了 $uid 变量。)所以我知道它们可以工作,我很确定它与 $uid 变量有关,但如果我回显它,它会回显“10”就好了。
-
看起来您遇到了这个错误:stackoverflow.com/questions/614671/…
标签: php mysql database while-loop