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



我正在尝试检查是否存在列。。若它更新了,那个么我想要更新值,若并没有,我想要改变表并添加一个值的列。我对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';
}

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

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

最新更新