php - 在mysqli中把这行代码改成什么

标签 php mysql pdo mysqli

我正在尝试将我的代码从 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/

相关文章:

php - 任何 preg_match 来检查 url 是否是 youtube/vimeo/dailymotion 视频链接?

php - empty fields 在数据库中保存空值

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

php - 使用长/纬度坐标查找另一个邮政编码半径内的列表的邮政编码/坐标

C#,MySQL 对象引用未设置为对象实例错误

php - 将数据从 php 插入数据库的问题

php - 单选按钮数据不显示在第二个字段集中

php - 具有 LEFT JOIN 和 ORDER BY 的 PDO

php - ubuntu 16.04 上的 vtiger php 错误

php - PDO 即使没有绑定(bind)任何参数仍然会得到结果