1

スクリプトの何が問題なのか、完全にわかりません。JSON データは正しく入力され、変数 $i と $current はすべて、forloop のすべての段階で本来あるべき状態になっています。

データベースを ID で更新し続けているように見えるので、ID が 11 の場合、すべての列が番号 11 で更新されます。

これが私のスクリプトです:

if($mode == 'SAVE_BUYING_ROW')
{   
    $JSON = (array)$JSON ;

    include('pdoconnect.php') ;
    $result = $dbh->prepare("UPDATE parts_trading_instructions
                 SET quantity = ?, supplierRef = ?, currencyRef = ?, 
                             net = ?, vat = ?, shippingNet = ?,
                 shippingVat = ?, direct = ?, ebayItemNumber = ?
                 WHERE id = ?") ;
    $i = 0 ;
    foreach($JSON as $current) {
        $current = (string)$current ;
        if($i == 0)
        {
            $i++ ;
            continue ;
        }

            $result->bindParam($i, $current, PDO::PARAM_STR) ;  
        $i++ ;
    }

$result->execute() ;

}

誰が私が間違っているのかを見ることができますか?

4

1 に答える 1

5

bindValueの代わりに使用しbindParamます。bindParam変数への参照を取得し、クエリの実行時にその値のみを読み取ります。すぐにbindValueを取ります。

于 2012-05-17T09:45:46.127 に答える