我试图理解mysqli的query()和prepare()之间的区别.我有类似下面的代码,我想从两者得到相同的结果.但是,prepare()不能按预期工作.为什么?

  // this works

  if ($query = $this->db->query("SELECT html FROM static_pages WHERE page = 'cities'")) {

     $result = $query->fetch_row();
     echo $result[0];

  $query->close();

  }

  //this does not work
  //result is empty

     $cities = 'cities';

     $stmt = $this->db->prepare("SELECT html FROM static_pages WHERE page = ?");
     $stmt -> bind_param("s",$cities);
     $stmt->execute();
     $stmt->bind_result($result);
     $stmt->fetch();
     echo $result;
     $stmt->close();

     $this->db->close();

这些是我的服务器配置按要求:

OS

Vista 64bit / PHP版本5.2.9

mysqli的

启用了MysqlI支持

客户端API库版本5.0.51a

客户端API标头版本5.0.51a

MYSQLI_SOCKET /tmp/mysql.sock

指令本地价值主值

mysqli.default_host没有值没有值

mysqli.default_port 3306 3306

mysqli.default_pw没有值没有值

mysqli.default_socket没有值没有值

mysqli.default_user没有值没有值

mysqli.max_links无限无限

mysqli.reconnect关闭

最佳答案
你能试试$stmt-> store_result(); $stmt-> execute();之间和$stmt-> bind_result($result); ?

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。