【问题标题】:problems converting my php script to mysqli将我的 php 脚本转换为 mysqli 的问题
【发布时间】:2015-04-11 16:12:16
【问题描述】:

我最近对我正在开发的网站进行了很多更改,并通过整个项目替换了旧的 mysql_ 与数据库交互的方法。在这个特定的脚本中,我无法让它正常工作。

旧代码是

$checkinfo = mysql_query("SELECT * FROM `myusers` WHERE `userid` = '$uid' LIMIT 1") or die(mysql_error());

if(mysql_num_rows($checkinfo) < 1){ //log and die if user isnt in db
  die("Incident has been logged!"); }

$myinfo = mysql_fetch_assoc($checkinfo);    

我的新代码是

$checkinfo = $mysqli->query("SELECT * FROM `myusers` WHERE `userid` = '$uid' LIMIT 1") or die('Error : ('. $mysqli->errno .') '. $mysqli->error);  

if($checkinfo->fetch_row() < 1){
    die("Incident has been logged!"); } 

$myinfo = $checkinfo->fetch_assoc();

现在它根本没有为其余代码设置我的数组...请指出我的愚蠢!谢谢

【问题讨论】:

  • "went thru the entire project replacing the old mysql_ methods" 帮自己一个忙,把你的数据库访问抽象成一个类,然后当你需要做进一步的改变时,你只需要在一个地方做

标签: php mysql arrays mysqli


【解决方案1】:

通过使用-&gt;fetch_row(),它已经喂入了第一行。由于您明确设置了 LIMIT 1,因此下一次 fetch 调用将导致 NULL

改为-&gt;num_rows

$checkinfo = $mysqli->query("SELECT * FROM `myusers` WHERE `userid` = '$uid' LIMIT 1") or die('Error : ('. $mysqli->errno .') '. $mysqli->error);  

if($checkinfo->num_rows < 1){
    die("Incident has been logged!"); // change this to something more meaningful.
} 

$myinfo = $checkinfo->fetch_assoc();

【讨论】:

    猜你喜欢
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 2012-03-05
    • 2010-12-22
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    相关资源
    最近更新 更多