我试图理解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的
客户端API库版本5.0.51a
客户端API标头版本5.0.51a
指令本地价值主值
MysqLi.default_host没有值没有值
MysqLi.default_port 3306 3306
MysqLi.default_pw没有值没有值
MysqLi.default_socket没有值没有值
MysqLi.default_user没有值没有值
MysqLi.max_links无限无限
最佳答案
你能试试$stmt-> store_result(); $stmt-> execute();之间和$stmt-> bind_result($result); ?
原文链接:https://www.f2er.com/mysql/432964.html