I am trying to understand the difference between mysqli's query() and prepare(). I have code like below, and I would like to get the same results from both. However the prepare() does not work as expected. why?
// 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();
these are my server configs as requested:
OS
Vista 64bit / PHP Version 5.2.9
mysqli
MysqlI Support enabled
Client API library version 5.0.51a
Client API header version 5.0.51a
MYSQLI_SOCKET /tmp/mysql.sock
Directive Local Value Master Value
mysqli.default_host no value no value
mysqli.default_port 3306 3306
mysqli.default_pw no value no value
mysqli.default_socket no value no value
mysqli.default_user no value no value
mysqli.max_links Unlimited Unlimited
mysqli.reconnect Off Off
Can you try $stmt->store_result();
between $stmt->execute();
and $stmt->bind_result($result);
?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With