这必须是一个新手的错误,但我没有看到它。下面是我的代码片段: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