Mysql_query UPDATE

时间:2015-06-24 18:59:27

标签: php mysql

我可以发誓我上周有这个工作,但现在我得到了错误。

在PHP中,我有一个大的CSV文件,我通过foreach循环运行,在这个循环中,我有一个创建的变量,它向自己添加一个UPDATE行,如下所示:

foreach ($csv->data as $value){
   $updater .= "UPDATE tblProduktData SET xtra = 2 WHERE id = '$value[1]';";
}
mysql_query("$updater") or die(mysql_error());

CSV文件包含超过3000行,因此在循环中使用mysql_query()显然会使进程变慢并且不值得推荐。

任何人都可以告诉我,如果我错过了什么或者做错了吗?

2 个答案:

答案 0 :(得分:1)

  

我们将暂时忽略您使用已弃用的PHP扩展 mysql _ 这一事实(计划从该语言中删除)已有好几年了。

出于某种原因,每次通过循环使用.=语法添加sql查询。我假设你认为你可以使用mysql_扩展一次运行多个查询,但你不能。

所以试试这个: -

foreach ($csv->data as $value){
   $updater = "UPDATE tblProduktData SET xtra = 2 WHERE id = '$value[1]'";
   mysql_query($updater) or die(mysql_error());
}

这实际上是使用mysqli_或PDO预处理语句的完美候选者。

The mysqli_ extension manual

The PDO manual

答案 1 :(得分:0)

试试这个:

<option value="0">Select</option>
<option value="111">superSubOcc1</option>
<option value="112">superSubOcc2</option>
<option value="113">superSubOcc3</option>
<option value="114">superSubOcc4</option>