现在,我使用mysqli_multi_query()
,我有两个操作:
- 首次插入
- 第二次更新。
我也尝试了他们两个在一个查询使用mysqli_multi_query()
,但它仍然不工作。
我正在为超过100的记录工作,所以我一次可以插入多少行。
这里是查询:
$qry1 .= "INSERT INTO productinfo( productName, productPrice,productSaleprice,productImage,
productLink, productColor, productSize, categoryId, ourceProductId,sourceId)";
$qry1 .= 'VALUES ("'.$productname.'","'.$productprice.'","'.$productsaleprice.'",
"'.$productimage.'","'.$productlink.'","'.$color.'","'.$size.'",
"'.$data2['categoryId'].'","'.$sourcePid.'","'.$sourceId.'");';
您可以使用statement:
INSERT INTO <table_name> (<PK_name>, <field_name>,...) VALUES (<PK_value>, <field_value,...),(<field_value,...), (<field_value,...)
ON DUPLICATE KEY UPDATE field_name = VALUES(<field_name>)
可以一次插入100行以上。
也许你的mysql服务器有限制,所以大查询会失败:
如果你得到一个错误像"Mysql错误(1153):得到一个数据包大于'max_allowed_packet'字节"你应该检查"max_allowed_packet"选项在你的Mysql配置。
请查看mysqli_multi_query文档中的以下注释:97354年http://php.net/manual/en/mysqli.multi-query.php
你不应该使用multi_query,除非你确切地知道你在做什么。
否则,使用常规的单独调用query()/prepare()