我最近开始更新一些代码到
MySQL改进的扩展,并且直到这一点已经成功:
// old code - works $result = MysqL_query($sql); if(MysqL_num_rows($result) == 1){ $row = MysqL_fetch_array($result); echo $row['data']; } // new code - doesn't work $result = $MysqLi->query($sql) or trigger_error($MysqLi->error." [$sql]"); if($result->num_rows == 1) { $row = $result->fetch_array(); echo $row['data']; }
解决方法
试试这个:
<?PHP // procedural style $host = "host"; $user = "user"; $password = "password"; $database = "db"; $link = MysqLi_connect($host,$user,$password,$database); IF(!$link){ echo ('unable to connect to database'); } ELSE { $sql = "SELECT * FROM data_table LIMIT 1"; $result = MysqLi_query($link,$sql); if(MysqLi_num_rows($result) == 1){ $row = MysqLi_fetch_array($result,MysqLI_BOTH); echo $row['data']; } } MysqLi_close($link); // OOP style $MysqLi = new MysqLi($host,$database); $sql = "SELECT * FROM data_table LIMIT 1"; $result = $MysqLi->query($sql) or trigger_error($MysqLi->error." [$sql]"); /* I have added the suggestion from Your Common Sence */ if($result->num_rows == 1) { $row = $result->fetch_array(); echo $row['data']; } $MysqLi->close() ; // In the OOP style if you want more than one row. Or if you query contains more rows. $MysqLi = new MysqLi($host,$database); $sql = "SELECT * FROM data_table"; $result = $MysqLi->query($sql) or trigger_error($MysqLi->error." [$sql]"); /* I have added the suggestion from Your Common Sence */ while($row = $result->fetch_array()) { echo $row['data']."<br>"; } $MysqLi->close() ; ?>