简体   繁体   English

使用PDO更新MySQL数据库的海量数据

[英]Update mass data using PDO for mysql database

I would like to add mass data to a mysql database using pdo 我想使用pdo将大量数据添加到mysql数据库
I want to update about 200 rows of data, each row 10 fields, i used four here below 我想更新大约200行数据,每行10个字段,我在下面使用了四个
connection to db is fine, i tested some result queries 与数据库的连接很好,我测试了一些结果查询
fields are filled using foreach, which works also fine, i verified content 字段使用foreach填充,效果也很好,我验证了内容
the problem however is the execute function, the execution gives an error and no data is inserted 但是问题是执行函数,执行给出错误并且没有插入数据

what to do please, hereby present code 请做什么,特此提示代码

//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);
//===================================================

Your call to execute method is wrong and at wrong place. 您对execute方法的调用是错误的,并且在错误的位置。 You should do it like this: 您应该这样做:

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

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

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM