這必須是一個新手的錯誤,但我沒有看到它。下面是我的代碼片段:Php mysqi bind_param變量數量與準備語句中的參數數量不匹配
$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();
當我回聲出值$一年$作,我看到了價值,但是當我運行該腳本,我得到一個空值,而下面的警告出現在我的日誌文件:
PHP Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement
在這種情況下,今年是在int型數據庫(10),和我試圖通過已被強制轉換爲int類型的副本,並是一個varchar( 20)用utf8_unicode_ci編碼。我錯過了什麼嗎?
你試圖對**做什麼**是在bind_param方法中? – 2013-02-08 20:48:09
它是$ types字符串。 「是」應該表示第一個參數是一個整數,第二個參數是一個字符串。 – TMorgan 2013-02-08 20:58:59