PHP中的CONCAT SQL查询

时间:2015-11-09 18:52:05

标签: php mysql

这是我的代码,但我收到了SQL语法错误;

pred: array([ 0,  1,  2, ...,  3, 12, 16], dtype=int64)
true: array([ 0,  1,  2, ...,  3, 12, 16])

执行此查询的正确方法是什么?

3 个答案:

答案 0 :(得分:3)

插入多个元组时,这是使用的符号。

$insert = "INSERT IGNORE INTO locations (location_id, location_name) VALUES (NULL, '".$area1."')";
$insert .= ", (NULL, '".$area2."')";
$insert .= ", (NULL, '".$area3."')";
$insert .= ", (NULL, '".$area4."')";
$insert .= ", (NULL, '".$area5."')";
$insert .= ";";

提供多个INSERT子句建议单独查询;这取决于MySQL库是可以接受的,但每个都需要;终止。

那就是说,你真的应该使用参数化查询。当prepare d时,它们的速度通常与此相当(在一些较大的体积插入物之外)。

答案 1 :(得分:0)

您只需要指定一次列名,然后用逗号分隔值。例如

INSERT INTO学生(姓名,年龄) VALUES ('约翰' 10), ('鲍勃' 10), ('杰里米',10);

所以只需更换 " INSERT IGNORE INTO位置(location_id,location_name)VALUES"在所有陈述中,除了第一个用逗号","并在末尾插入半结肠。

答案 2 :(得分:0)

使用此SQL语法(使用;):

$insert = "INSERT IGNORE INTO locations (location_id, location_name) VALUES (NULL, '$area1');";
$insert .= "INSERT IGNORE INTO locations (location_id, location_name) VALUES (NULL, '$area2');";
$insert .= "INSERT IGNORE INTO locations (location_id, location_name) VALUES (NULL, '$area3');";
$insert .= "INSERT IGNORE INTO locations (location_id, location_name) VALUES (NULL, '$area4');";

或者

$insert = "INSERT IGNORE INTO locations (location_id, location_name) VALUES (NULL, '$area1')";
$insert .= ", (NULL, '$area2')";
$insert .= ", (NULL, '$area3')";
$insert .= ", (NULL, '$area4');";