如果特定行名称不存在,则 POSTGRESQL INSERT?
仅当我的模型不存在时,我才尝试插入我的 Postgresql 数据库。我正在使用 PDO 连接,我尝试忽略和 ON DUPLICATE KEY UPDATE,但 PDO / 语法有错误。
我的代码:
if(isset($_POST['insertModel'])){
require("includes/connection.php");
$models = $_POST['name'];
$parametros = array($models);
$sth = $dbh->prepare("INSERT INTO models (name) VALUES ( ? )");
$sth->execute($parametros);
if($sth){
header("location: admin.php?model_inserted=1");
}
}
I'm trying to INSERT in my Postgresql database only if my model don't exists. I'm using PDO connection, I try IGNORE and ON DUPLICATE KEY UPDATE but with errors in PDO / syntax.
MY Code:
if(isset($_POST['insertModel'])){
require("includes/connection.php");
$models = $_POST['name'];
$parametros = array($models);
$sth = $dbh->prepare("INSERT INTO models (name) VALUES ( ? )");
$sth->execute($parametros);
if($sth){
header("location: admin.php?model_inserted=1");
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ON DUPLICATE KEY UPDATE
是 MySQL 语法,而不是 PostgreSQL。 PostgreSQL 没有简单的 SQL 语法来完成您想要的操作。但 文档 包含示例执行此操作的函数的代码。
ON DUPLICATE KEY UPDATE
is MySQL syntax, not PostgreSQL. PostgreSQL doesn't have a simple SQL syntax to do what you want.But the documentation includes example code for a function that does that.
为什么不使用 try-catch 并只捕获重复的键呢?这样您就可以向用户呈现捕获的重复项(如果您愿意)。
Why not use a try-catch and just catch the duplicate keys? That way you can present the caught duplicates for the user (if you want to).