SQL - 在值为数组的位置插入数据

时间:2014-03-30 00:05:02

标签: php mysql sql arrays

我希望能够向表中添加一个字符串数组,以便每个字符串都是一个新行(在PHP中)。

这是伪造的代码:

$Array = "10000,10001,10002,10003";
$Data = "ImportantData";
mysqli_query($db, "INSERT INTO MyTable(`id`,`data`) VALUES($Array, $Data)");

以前的空表看起来像:

id      | data      
------------------------
10000   | ImportantData
10001   | ImportantData
10002   | ImportantData
10003   | ImportantData

在更新脚本中,已经建立了这些行,我可以说:

mysqli_query($db, "UPDATE MyTable SET data = $Data WHERE `id` IN($Array));

但是我希望它能够创建行,而不仅仅是更新旧行。

我有什么方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:0)

只需在$ Array上创建一个foreach循环,然后插入数据。我假设您要更新它,如果它存在,因为创建具有相同PK的新记录没有意义,所以使用以下(假设您使用PHP PDO

INSERT INTO MyTable (id,data) VALUES (:id,:data) ON DUPLICATE KEY UPDATE data=:data;

答案 1 :(得分:0)

使用REPLACE INTO

REPLACE INTO table SET id = 10001, data = 'new important data';

MySQL文档:http://dev.mysql.com/doc/refman/5.0/en/replace.html