Tôi đang cố gắng hiểu sự khác biệt giữa truy vấn mysqli() và chuẩn bị(). Tôi có mã như dưới đây, và tôi muốn có được kết quả tương tự từ cả hai. Tuy nhiên, chuẩn bị() không hoạt động như mong đợi. tại sao?Chuẩn bị() vs truy vấn() mysqli
// 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();
đây là những configs máy chủ của tôi theo yêu cầu:
OS
Vista 64bit/PHP Version 5.2.9
mysqli
mysqli Hỗ trợ kích hoạt
Client API thư viện phiên bản 5.0.51a
Client API tiêu đề phiên bản 5.0.51a
MYSQLI_SOCKET /tmp/mysql.sock
Chỉ thị Local Value Thạc sĩ Value
mysqli. default_host không có giá trị không có giá trị
mysqli.default_port 3306 3306
mysqli.default_pw không có giá trị không có giá trị
mysqli.default_socket không có giá trị không có giá trị
mysqli.default_user không có giá trị không có giá trị
mysqli.max_links Unlimited Unlimited
mysqli.reconnect Tắt Tắt
bạn phải in $ stmt-> error() để xem điều gì đang xảy ra. –
Ah, xin lỗi, đó là một biến, không phải phương pháp. $ stmt-> error –
Trong trường hợp đó $ stmt-> error không có giá trị nào cả. Tôi đã thử nó trên tất cả các dòng. – Mike