我必须使用这些变量在 PgSQL 表中插入几个值
$knr = $reader->getAttribute('Nr');
$kname = $reader->getAttribute('Name');
还有这个插入代码:
$SQL = "";
$SQL .= "SELECT
(konzern).knr AS knr, (konzern).name AS name
FROM konzern";
$SQL .= "INSERT INTO konzern (";
$SQL .= "knr, name";
$SQL .= ") VALUES (";
$SQL .= "'".$knr."', '".$kname."'";
$SQL .= ");".PHP_EOL;
我想检查表“Konzern”是否已经有包含 $knr 的行,如果是,它应该插入到其中,如果不是,它应该创建一个新行
$query = doQuery("select nr from konzern where knr = '".$knr."'");
$num_rows = ($query->num_rows);
if ($num_rows > 0) {
// do nothing
}
else {
$sql .= "select nextval('konzern_nr_seq')";
}
但我在将其按正确顺序排列时遇到了一些问题。 有人可以完成这段代码吗?
最佳答案
您可以通过这种方式使用单个查询来完成此操作:
INSERT INTO konzern SELECT val1, val2
WHERE NOT EXISTS(
SELECT nr from konzern where knr = 'var1'
)
实现这种方法会更加直接。
并记住使用查询参数而不是连接查询文本,以避免 SQL 注入(inject)。
关于php - 插入前检查 PostgreSQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32115207/