我想通過使用以下Prepared Statement從MySQL數據庫獲取一些數據。但我有兩個Problwms這裏:使用MySQLi Prepared Statement獲取行的問題
1的代碼只返回最後一行值,但你可以看到我使用與$stmt->fetch()
的同時,迭代器在
while($stmt->fetch());{
echo '<option value="'.$uid.'">'.$name.'</option>';
}
2 - 另一件事是,當我嘗試使用代碼段2中的if($stmt->num_rows > 0){}
我收到Cant'查找數據消息!
<?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>
爲什麼不使用PDO? –
如果numrows說沒有行,那麼你的查詢沒有返回行...你是否嘗試過直接在mysql shell中運行該查詢?這或查詢失敗了,因爲你沒有檢查錯誤,你只是盲目地認爲它成功了。 –
@Marc B,感謝評論,還有是絕對錶中的行加上我witdout使用if語句我得到最後一行說 – Suffii