Điều này phải là lỗi của người mới, nhưng tôi không thấy nó. Dưới đây là một đoạn trích từ mã của tôi:Php mysqi bind_param Số biến không khớp với số tham số trong câu lệnh đã chuẩn bị
$mysqli = mysqli_connect($dbCredentials['hostname'],
$dbCredentials['username'], $dbCredentials['password'],
$dbCredentials['database']);
if ($mysqli->connect_error) {
throw new exception('Connect Error (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
}
$stmt = $mysqli->prepare("SELECT DISTINCT model FROM vehicle_types
WHERE year = ? AND make = '?' ORDER by model");
$stmt->bind_param('is', $year, $make);
$stmt->execute();
Khi tôi echo ra các giá trị cho $ năm và $ make, tôi nhìn thấy giá trị, nhưng khi tôi chạy kịch bản này, tôi nhận được một giá trị null, và cảnh báo sau xuất hiện trong tập tin đăng nhập của tôi:
PHP Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement
trong trường hợp này, năm là trong cơ sở dữ liệu trong kiểu int (10), và tôi đã cố gắng đi qua một bản sao đã được chọn vào vai một int, và chắc là một varchar (20) với mã hóa utf8_unicode_ci. Tui bỏ lỡ điều gì vậy?
Bạn đã cố gắng làm gì với điều đó ** là ** trong phương thức bind_param? –
Đây là chuỗi $ loại. "Là" nên biểu thị rằng tham số đầu tiên là một số nguyên và tham số thứ hai là một chuỗi. – TMorgan