微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php切换到mysqli:num_rows问题

我最近开始更新一些代码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'];
    }

如图所示,我试图使用面向对象的风格.
我没有得到MysqLi错误,vardump说没有数据……但db表中肯定有数据.

解决方法

试试这个:

<?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() ;    

?>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐