簡體   English   中英

HY093:參數數量錯誤-位置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM