为什么bind_param()
在我的中,而
循环不起作用
致命错误:对中的非对象调用成员函数bind_param()。。。
我要在这里做的是显示来自
user
表的所有数据(如果$key
未设置),然后,
我想使用if
语句区分显示的值。我尝试在数据库管理器中执行准备好的查询,它的工作原理。但在这种情况下...我的查询似乎返回false。那么,有什么想法吗?这是密码,
function cariTemen($key) {
require 'settings.php';
$my_id = $_SESSION['user_id'];
$stmt = $conn->prepare ("SELECT user_id,nama_asli FROM user WHERE username LIKE ? OR nama_asli LIKE ?");
$key = '%'.$key.'%';
$stmt->bind_param('ss',$key,$key);
$stmt->execute();
$stmt->bind_result($id,$nama);
//MODIFIED FROM HERE
while($stmt->fetch()) {
$temen_id = $id;
$username = $nama;
$temen = $conn->prepare("SELECT id_temenan FROM temenan WHERE temen_id = ? AND user_id = ?");
$temen->bind_param('ii',$temen_id,$my_id); //ERROR IS HERE
$temen->execute();
$temen->store_result();
$jml= $temen->num_rows;
if($jml > 0) {
echo $username.' [Temenan]<br>';
} else {
echo $username.' <a href="add.php?user_id='.$temen_id.'"">Temenin</a><br>';
}
}
$stmt->close();
}
提前感谢您能提供的任何帮助。
正如marcellorvalle所说,mysql不能同时维护两个查询,在这种情况下,我需要将所有值存储到一个array()变量中。所以脚本是这样的:
$user_id = array();
$username = array();
$i = 0;
while($stmt->fetch()) {
$user_id[$i] = $id;
$username[$i] = $nama;
$i++;
}
$stmt->close();
for ($j= 0 ; $j <= $i; $j++) {
$temen = $conn->prepare("SELECT id_temenan FROM temenan WHERE temen_id = ? AND user_id = ?");
$temen->bind_param('ii',$user_id[$j],$my_id);
$temen->execute();
$temen->store_result();
$jml= $temen->num_rows;
if($jml > 0) {
echo '<a href="profil.php?user_id='.$user_id[$j].'"">'.$username[$j].'</a> [TeMeNan]<br>';
} else {
echo ' <a href="profil.php?user_id='.$user_id[$j].'"">'.$username[$j].'</a> <a href="add.php?user_id='.$user_id[$j].'"">[TeMeNin]</a><br>';
}
}
$temen->close();
根据消息,$temen似乎不是一个对象。尝试使用var_dump($temen)调试它。似乎是$conn-
您可以检查任何回显$conn的错误-
bind_param()
不起作用,而是prepare()
问题内容: 我正在用Java编写电台代码,并且正在使用一个线程来当然播放流。我在线程的run方法中有一个while循环,该循环检查名为ShouldPlay的变量是否为true,以及是否运行该变量。播放器。然后,我有一个pause()方法,将变量设置为false,并且自然希望它在变量为false时不运行播放器。我创建了一个小示例,说明如何在下面进行设置: 我想发生的事情是,当线程首次运行时,它应该打
问题内容: 在这段代码中,为什么不按我的意愿初始化我的数组?是不是for-each循环并非旨在做到这一点,或者我只是没有正确使用它? 问题答案: for-each循环不适用于这种情况。您不能使用for-each循环来初始化数组。您的代码: 将转换为以下内容: 如果这是一个对象数组,它仍然会失败。基本上,for-each依次将集合或数组中的每个条目分配给您提供的变量,然后可以使用该变量。该变量 不
问题内容: 我有一个项目,我试图在回调中使用weakrefs,但我不明白我在做什么错。我创建了简化的测试,以显示我困惑的确切行为。 为什么在此测试中test_a可以正常工作,但是self.MyCallbackB的weakref在类初始化和调用test_b之间消失了?我以为只要实例(a)存在,对self.MyCallbackB的引用就应该存在,但是不存在。 问题答案: 您需要一个WeakMethod
我安装了SpaceVim来测试它和< kbd >;(分号)不起作用。< code >:nmap;表示“未找到映射”。问题是我在源代码中找不到它的未映射位置。在vim中有不同的方法来重新映射/取消映射一个键吗?我应该如何找到这些方法?
我试图制作一个for循环脚本,使用Angular创建订单,并将其添加到网页中。我在使用某些for循环时遇到了问题,因为当我使用控制台时。log(),它只输出外部循环,不输出内部循环。我需要把变量的顺序传递给另一个函数,所以我需要这个顺序来获得正确的数据。 结果: 它重复最后一个外环值,而不输出内环值。我对Javascript还是很陌生的,所以我需要一些洞察力和解决方案,也许还有简单的方法?谢谢!