我试图通过使用以下准备语句从MySQL数据库中获取一些数据。但我在这里有两个问题:
1-代码仅返回最后一行的值,但正如您所见,我在{/ 1}}处使用while迭代器
$stmt->fetch()
2 - 另一件事是当我尝试在代码片段2中使用while($stmt->fetch());{
echo '<option value="'.$uid.'">'.$name.'</option>';
}
时,我得到的是 Cant&#39;查找数据消息!
if($stmt->num_rows > 0){}
摘录2与 <?php
$conn = new mysqli('localhost', 'root', '', 'dbmodel');
if ($conn->connect_error) {
die("Connection Failed: " . $conn->connect_error);
}
$sql = 'SELECT uid, name FROM `single-animals-tbl`';
$stmt = $conn->prepare($sql);
$stmt->execute();
$stmt->bind_result($uid,$name);
?>
<select>
<option value="0">Select From The List</option>
<?php
while($stmt->fetch());{
echo '<option value="'.$uid.'">'.$name.'</option>';
}
$stmt->close();
$conn->close();
?>
</select>
if($stmt->num_rows > 0){}
答案 0 :(得分:1)
至于你的第一个问题: 在你的while循环之后你有一个虚假的分号。所以它相当于
while($stmt->fetch())
{
;
}
{
echo '<option value="'.$uid.'">'.$name.'</option>';
}
删除它,它应该工作
答案 1 :(得分:0)
尝试使用1 + 1/4 + 1/9
代替get_result
,然后继续使用bind_result
P.S。这将需要安装mysqlnd