我试图理解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关闭