我在$q->execute
行收到了HY093错误。
致命错误:未捕获的异常' PDOException'消息' SQLSTATE [HY093]:参数号无效:参数未定义'
$stmt = "INSERT INTO `survey`(`user`,`notes`,`lat`,`lon`,`acc`,`timestampx`) VALUES(?,?,?,?,?,?)";
$q = sql::$db->prepare($stmt);
var_dump($data);
$q -> execute($data);
和我的vardump回声:
array(6) {
["user"]=>string(9) "Your Name"
["notes"]=>string(5) "Notes"
["lat"]=>string(10) "35.1338614"
["lon"]=>string(19) "-106.64091979999999"
["acc"]=>string(4) "8512"
["time"]=>string(13) "1442043552884"
}
当我将这些数据复制并粘贴到MySQL中时(用引用的字符串替换?)它可以工作。
知道我可能缺少什么吗?
答案 0 :(得分:3)
您正在混合使用PHP的两种方式。如果要使用关联数组来提供绑定值,则查询需要按名称引用它们,并使用冒号(:
)来指示这些是绑定变量:
$stmt = "INSERT INTO `survey`" .
"(`user`,`notes`,`lat`,`lon`,`acc`,`timestampx`) " .
"VALUES(:user, :notes, :lat, :lon, :acc, :time)";
或者,您可以保留$query
,并以简单的位置数组提供参数:
$data = array("Your Name",
"Notes",
"35.1338614",
"-106.64091979999999",
"8512",
"1442043552884");