我正在尝试将我的代码从 mysql 更改为 mysqli,但是我在更改这段代码时遇到了问题:
while($sqlrow = mysql_fetch_array($sqlresult))
{
$room = $sqlrow['Room'];
$roomHTML .= "<option value='".$room."'>" . $room . "</option>".PHP_EOL;
}
echo $roomHTML;
我在下面的 mysqli 代码中没有变量 $sqlrow,我如何将行 $room = $sqlrow['Room'];
更改为下面:
完整代码:
$building = isset($_POST['building']) ? $_POST['building'] : '';
$sql = "SELECT Room FROM Room WHERE Building = ?";
$sqlstmt=$mysqli->prepare($sql);
$sqlstmt->bind_param("s",$building);
$sqlstmt->execute();
$sqlstmt->bind_result($dbRoom);
$roomHTML = "";
while($sqlstmt->fetch()) {
$room = $sqlrow['Room'];
$roomHTML .= "<option value='".$room."'>" . $room . "</option>".PHP_EOL;
}
echo $roomHTML;
$sqlstmt->execute();
上面的代码试图在下拉菜单中显示所有房间,这些房间与它们所属的建筑物相匹配。
谢谢
最佳答案
您没有使用绑定(bind)结果 var $dbRoom
。
// Your output value of interest is $dbRoom as you have bound here:
$sqlstmt->bind_result($dbRoom);
$roomHTML = "";
while($sqlstmt->fetch()) {
// $dbRoom holds the value fetched from the result set, since that is what you bound above.
// Note: added htmlentities() to encode quotes if there are any embedded in the room value.
$roomHTML .= "<option value='". htmlentities($dbRoom, ENT_QUOTES) ."'>" . htmlspecialchars($dbRoom) . "</option>".PHP_EOL;
}
关于php - 在mysqli中把这行代码改成什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071771/