【问题标题】:PDO Postgres - Check if Column Exist and do action based off conditionPDO Postgres - 检查列是否存在并根据条件执行操作
【发布时间】:2019-05-12 01:21:06
【问题描述】:

我正在尝试检查是否存在列。如果存在,那么我想更新值,如果不存在,我想更改表并添加具有 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';
}

【问题讨论】:

    标签: php sql postgresql pdo


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 2012-08-12
      • 2021-12-04
      • 2019-05-26
      • 1970-01-01
      • 2019-01-16
      • 2023-03-09
      相关资源
      最近更新 更多