PDO Postgres-检查列是否存在,并根据关闭条件进行操作

时间:2018-12-11 04:55:41

标签: php sql postgresql pdo

我正在尝试查看是否存在一列。如果存在,那么我想更新该值,如果不存在,我想更改表并为该列添加一个a值。我对PDO还是很陌生,但是我可以确定我的查询很好,只是我不知道如何处理execute()命令的输出。感谢您的提前帮助!

$sth = $pdo->prepare(' SELECT ? FROM `?` WHERE column_name=? ');
$sth->bindParam(1, $column, PDO::PARAM_STR);
$sth->bindParam(2, $livetable, PDO::PARAM_STR);
$sth->bindParam(3, $column, PDO::PARAM_STR);
$sth->execute();

if ($sth) {
    //Row Exist - Update Value
    echo 'Row Exist';
}else{
    //Row Doesn't Exist - Create column & update with value
    echo 'row does not';
}

1 个答案:

答案 0 :(得分:0)

您不能像这样将表名作为绑定参数传递,您将需要使用动态SQL来实现。但是,如果您只想检查表中是否存在一列,请不要直接查询该表(如果它包含数百万条记录呢?);而是查询Postgres信息架构,如下所示:

SELECT column_name 
FROM information_schema.columns 
WHERE
    table_name = ?
    AND  column_name = ?;