標題の通り、inventoryというテーブルの中に数値($subtotal)を挿入したいのですが、下記のコードを実行したところ以下のエラーメッセージが出ました。
「捕捉した例外: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens」
変数の数が異なるということでしょうか?どなたかご教授よろしくお願いいたします。
<?php $pdo = new PDO("mysql:host=xxx; dbname=xxx; charset=utf8", "xxx", "xxx", array( PDO::ATTR_EMULATE_PREPARES => false ) ); $statement = $pdo->prepare( "SELECT inventory.code,inventory.id ,inventory.zaikoryo , kakaku_list.kakaku , inventory.product_name , FROM inventory JOIN kakaku_list ON inventory.code = kakaku_list.No ;" ); $statement->execute( ); $results = $statement->fetchAll(); foreach( $results as $result ){ $subtotal=$result['zaikoryo']*$result['kakaku']; $id=$result['id']; try { $dsn='mysql:dbname=xxx;host=xxx'; $usr='xxx'; $password='xxx'; $dbh=new PDO($dsn,$user,$password); $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $sql='UPDATE inventory SET subtotal=? WHERE id=?'; $stmt=$dbh->prepare($sql); $data[]=$subtotal; $data[]=$id; $stmt->execute($data); $dbh=null; } catch(Exception$e) { echo '捕捉した例外: ', $e->getMessage(), "\n"; exit(); } } ?>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/26 13:20
2017/05/26 13:26
2017/05/26 13:34
2017/05/26 13:39
2017/05/26 13:51
2017/05/26 14:23
2017/05/26 14:33
2017/05/26 14:52
2017/05/26 15:06