2017-07-05 11 views
-1

これは私のコードです。私はそれを実行することができません。Mysql error無効なパラメータ番号:パラメータが定義されていません

これは私が$db->execute();ラインに乗るエラーメッセージです:

SQLSTATE [HY093]:無効なパラメータ番号:パラメータが定義されていませんでした」

$query = "UPDATE gateway_devices " 
     ."SET coin_lat=:coin_lat, coin_lng=:coin_lng" 
     ."WHERE nick_name=:nick_name AND gateway_id=:g_id AND device_id=:d_id"; 

$db->query($query); 
$db->bind(':coin_lat', $coin_lat); 
$db->bind(':coin_lng', $coin_lng); 
$db->bind(':nick_name', $nick_name); 
$db->bind(':g_id', $g_id); 
$db->bind(':d_id', $d_id); 
$db->execute(); 
+2

' $ query'を出力すると、なぜ動作しないのか理解できます。構築されたクエリのスペースの不足は、誤字となり、終了する投票とみなされます。 –

+0

@ GordonLinoff大変ありがとうございました。それはスペースに関する単純な問題でした。 これで動作します。 – Mihir

答えて

0

私がしなければならなかったすべてを二重引用符を閉じる前に2行目にスペースを追加しました。

これは、空白を追加する前後のクエリの様子です。前

- "UPDATEがcoin_lat = SET gateway_devices:coin_latを、coin_lng =:coin_lngWHERE NICK_NAME =:NICK_NAME AND GATEWAY_ID =:g_id AND DEVICE_ID =:D_ID" 後

- UPDATEがcoin_lat SET gateway_devices」=:coin_lat 、coin_lng =:coin_lng WHERE nick_name =:ニックネームAND gateway_id =:g_id AND device_id =:d_id "

関連する問題