我有一个基于以下内容的插入命令:
$baseINS = "INSERT INTO table2 (Points_ID, StaticCode) VALUES ";
$arrayINS = explode(", ", $arraystring);
foreach ($arrayINS as &$array1INS) {
$array1INS = "('" . $array1INS . "', '123456')";
}
$arrayvaluesINS = implode(', ', $arrayINS);
$insertSQL2 = $baseINS . $arrayvaluesINS;
从以下$insertSQL2
事务中查询:
$insertSQL = "BEGIN";
mysql_query($insertSQL) or die (mysql_error());
$insertSQL = $insertSQL1;
mysql_query($insertSQL) or die (mysql_error());
$insertSQL = $insertSQL2;
mysql_query($insertSQL) or die (mysql_error());
$insertSQL = "COMMIT";
mysql_query($insertSQL) or die (mysql_error());
($insertSQL1
另一个 SQL 插入到另一个表在哪里)
表结构如下:
table2
(ID
int(50) NOT NULL AUTO_INCREMENT,
StaticCode
varchar(100) NOT NULL,Points_ID
varchar(50) NOT NULL, PRIMARY KEY (ID
), UNIQUE KEYID
(ID
)) ENGINE=InnoDB
现在,让我们说,例如,$insertSQL2
回声为INSERT INTO table2 (Points_ID, StaticCode) VALUES ('24859', '123456'), ('24649', '123456'), ('25166', '123456')
我希望 table2 中会出现三行 ...但这就是发生的情况:
- 实际上,插入命令 (
$insertSQL1
和) 都插入数据。$insertSQL2
- 只是,虽然
$insertSQL1
将所有表单中的所有数据插入到 table1 中的必填字段中,但$insertSQL2
(插入数组)没有 - 它只是插入静态代码一次,并将 Points_ID 留空。
我已经通过将回显命令复制到 PHPMySQL 中测试了 INSERT 语句,它完全按照它应该做的那样做,所以我知道我的 MySQL 版本可以处理它。
任何想法为什么?