我试图通过使用以下准备好的语句从MySQL数据库获得一些数据。但是我有两个问题:
1-代码只返回最后一行的值,但正如你所看到的,我使用的是在
处的$stmt->fetch()
的while迭代器while($stmt->fetch());{
echo '<option value="'.$uid.'">'.$name.'</option>';
}
2 -另一件事是当我尝试在代码片段2使用if($stmt->num_rows > 0){}
时,我得到无法找到数据消息!
<?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>
代码段2与if($stmt->num_rows > 0){}
<?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);
if($stmt->num_rows > 0){
?>
<select>
<option value="0">Select From The List</option>
<?php
while($stmt->fetch());{
echo '<option value="'.$uid.'">'.$name.'</option>';
}
}else {
echo "Cant' Find Data";
}
$stmt->close();
$conn->close();
?>
</select>
关于你的第一个问题:while循环后面有一个冒号。所以它相当于
while($stmt->fetch())
{
;
}
{
echo '<option value="'.$uid.'">'.$name.'</option>';
}
删除它,它应该可以工作
尝试使用get_result
代替bind_result
,并继续使用mysqli_fetch_assoc
代替
注:这将需要安装mysqlnd