gpt4 book ai didi

php - 插入前检查 PostgreSQL 表

转载 作者:搜寻专家 更新时间:2023-10-30 23:43:31 25 4
gpt4 key购买 nike

我必须使用这些变量在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com