我有一个表image_tb,它有3个字段id,images,link
(id是auto auto_increment),这是我的插入代码:
mysql_query("
insert into image_tb
(images,link)
select
'".(max(id)+1).".jpeg','".$link."'
from image_tb
");
它返回:
Warning: max(): When only one parameter is given, it must be an array
如何修改?感谢。
答案 0 :(得分:3)
你更好地定义一个函数,通过查询得到最后一个id,如下所示: "通过id desc limit 0,1"从image_tb顺序中选择id 然后增加它,它的realibe。
答案 1 :(得分:3)
我认为你并不是要关闭字符串:
select '" ...
应该是
select MAX(id) + 1
否则你正在使用php函数max
,我认为你根本不打算这样做。
顺便说一下,你不应该使用mysql_*
。使用PDO
或mysqli
。
答案 2 :(得分:0)
在查询中执行,
mysql_query("
insert into image_tb (images,link)
select CONCAT(COALESCE((SELECT MAX(ID) + 1 FROM image_tb),1), '.jpeg'),'".$link."'
from image_tb
");
您的查询容易被SQL Injection
攻击,请阅读以下文章以免受其侵害
答案 3 :(得分:0)
你考虑过这样的事吗?