我正在尝试将一些值插入数据库,我需要插入的值之一是: - MAX(FixedFareID)+1
如下:
public function fixed($fieldDay) {
$pdo = new SQL();
$dbh = $pdo->connect(Database::$serverIP, Database::$serverPort, Database::$dbName, Database::$user, Database::$pass);
$this->sql = "INSERT INTO tblfixedfare VALUES (NULL, MAX(FixedFareID)+1, '1', '$fieldDay')";
显然,因为它不起作用,但我不确定如何将MAX(FixedFareID)+1值插入数据库。
非常感谢任何帮助。
答案 0 :(得分:3)
INSERT INTO tblfixedfare
select NULL, MAX(FixedFareID)+1, '1', '$fieldDay' from tblfixedfare
答案 1 :(得分:1)
最好的方法是使用auto_increment
列(语法取决于您的SQL引擎)或使用序列。
答案 2 :(得分:0)
使用子查询:
$this->sql =
"INSERT INTO tblfixedfare
VALUES (NULL, (SELECT MAX(FixedFareID)+1 FROM tblfixedfare), '1', '$fieldDay'";
答案 3 :(得分:0)
你做错了。您需要为MAX()
(SELECT MAX(FixedFareID)+1 FROM tblfixedfare)
或者可能更好更快,将FixedFareID
切换为使用auto increment
功能。
答案 4 :(得分:0)
如果您没有自动增量字段,则可以使用以下内容:
INSERT INTO tblfixedfare
SELECT NULL, MAX(FixedFareID)+1, '1', '$fieldDay'
FROM tblfixedfare
所以你的代码是:
public function fixed($fieldDay) {
$pdo = new SQL();
$dbh = $pdo->connect(Database::$serverIP, Database::$serverPort, Database::$dbName, Database::$user, Database::$pass);
$this->sql = "INSERT INTO tblfixedfare SELECT NULL, MAX(FixedFareID)+1, '1', '$fieldDay' FROM tblfixedfare";