0

pdo
を使用して大量のデータを mysql データベースに追加したいと思います。約 200 行のデータを更新したいのですが、各行は 10 フィールドです。ここでは 4 つを使用しました。db への
接続は問題ありません。いくつかの結果クエリ
フィールドが foreach を使用して埋められることをテストしました。これも問題なく動作しますが、コンテンツを確認
しましたが、問題は実行機能であり、実行でエラーが発生し、データが挿入されません

何をすべきか、ここにコードを提示してください

//set db
$host   = 'localhost';
$dbname = 'dbdata';
$attrs = array(PDO::ATTR_PERSISTENT => true);
$dbHandle = new PDO("mysql:host=$host;dbname=$dbname",'dbdatatable','tblpwd');
$dbHandle->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
//===================================================
//prepare sql
$sql = "UPDATE TickersList SET field1=?, field2=?, field3=? WHERE field4=?";
$STH = $dbHandle->prepare($sql);
//===================================================
//declare arrays 
$ufield1 = array();
$ufiled2 = array();
$ufiled3 = array();
$ufiled4 = array();
//===================================================
//fill arrays with data
foreach( $this->_data as $qty ){
$ufield1 [] = $qty->data1;
$ufield2 [] = $qty->data2;
$ufield3 [] = $qty->data3;
$ufield4 [] = $qty->data4;
}
//===================================================
//execute query - not working :(
$STH->execute($sql,$ufield1,$ufield2,$ufield3);
//===================================================
4

1 に答える 1

0

execute メソッドの呼び出しが間違っており、間違った場所にあります。次のようにする必要があります。

//fill arrays with data
foreach( $this->_data as $qty ){

$params = array($qty->data1,$qty->data2,$qty->data3,$qty->data4);
$STH->execute($params);

}
于 2013-06-20T17:39:28.310 に答える