对于我的插入之一,我有以下内容:(PDO / MySQL)
$this->sql = "INSERT INTO tblfixedfares NULL, SELECT NULL, IFNULL(MAX(FixedFareId), 0) + 1, '$fieldFrompc', '$fieldTopc', '$fieldDay', '1', 'Car') FROM tblfixedfares;
INSERT INTO tblfixedfares NULL, SELECT NULL, IFNULL(MAX(FixedFareId), 0) + 1, '$fieldFrompc', '$fieldTopc', '$fieldNight', '2', 'Car') FROM tblfixedfares;";
基本上,这不起作用,因为它没有插入FixedFareId
.
我想要做的是将 FixedFareId 设置为大于最高固定票价 id 值的 1,如果为 null 则将 FixedFareId 设置为 1。
不确定代码到底有什么问题,但我可以看到它没有为 FixedFareId 拾取任何东西,因为我得到了以下响应:
Error: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1SQL
INSERT INTO tblfixedfares VALUES (NULL, 'le675', 'le115', '11', '1', 'Car');
INSERT INTO tblfixedfares VALUES (NULL, 'le675', 'le115', '22', '2', 'Car');
基本上两个插入发生在一个查询中,如果数据库中没有任何内容 FixedFareId 需要为 1:
所以第一个插入需要是:
INSERT INTO tblfixedfares VALUES (NULL, **1**, 'le675', 'le115', '11', '1', 'Car');
INSERT INTO tblfixedfares VALUES (NULL, **1**, 'le675', 'le115', '22', '2', 'Car');
下一个插入将是:
INSERT INTO tblfixedfares VALUES (NULL, **2**, 'le675', 'le115', '11', '1', 'Car');
INSERT INTO tblfixedfares VALUES (NULL, **2**, 'le675', 'le115', '22', '2', 'Car');
数据库如下:
id, FixedFareId , ShortPostcodeA, ShortPostcodeB, Fare, DayHalf, VehicleSystemId
id 为自增,fixedfareid 为 1 为空,fixedfareid 的最大值为+1 不为空。