[英]HY093: Wrong number of parameters - positional
我在$q->execute
行上收到HY093錯誤。
致命錯誤:消息為'SQLSTATE [HY093]:未捕獲的異常'PDOException':無效的參數號:未定義參數'
$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中(用引號引起的字符串替換?)時,它可以工作。
知道我可能會缺少什么嗎?
您正在混合使用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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.