【发布时间】:2012-10-12 21:01:03
【问题描述】:
我有以下代码将 1 行插入数据库:
public function fixed($fieldDay, $fieldNight) {
$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)";
try {
// Query
$stmt = $dbh->prepare($this->sql);
$stmt->execute();
$count = $stmt->rowCount();
echo $count.' row(s) inserted by SQL: '.$stmt->queryString;
$stmt->closeCursor();
}
catch (PDOException $pe) {
echo 'Error: ' .$pe->getMessage(). 'SQL: '.$stmt->queryString;
die();
}
// Close connection
$dbh = null;
}
}
在执行此操作的同时,我想在同一张表中插入另一行:
$this->sql = "INSERT INTO tblfixedfare (SELECT NULL, MAX(FixedFareID)+1, '2', '$fieldNight' FROM tblfixedfare)";
我该怎么做呢?
编辑
另外,对于两个插入,MAX(FixedFareID)+1 的值必须是相同的值。
【问题讨论】:
-
为什么不直接使用 Auto_increment?
-
只需
UNION两个SELECT语句。 -
您正在使用准备好的语句,但您没有绑定任何参数,同时您将原始变量传递给查询?有点没有意义,不是吗?