prepare()vs query()mysqli

Mik*_*ike 5 php mysql mysqli

我试图理解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();
Run Code Online (Sandbox Code Playgroud)

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

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关闭

a1e*_*x07 2

你能尝试一下和$stmt->store_result();之间吗?$stmt->execute();$stmt->bind_result($result);