我正在尝试查看是否存在一列。如果存在,那么我想更新该值,如果不存在,我想更改表并为该列添加一个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';
}
答案 0 :(得分:0)
您不能像这样将表名作为绑定参数传递,您将需要使用动态SQL来实现。但是,如果您只想检查表中是否存在一列,请不要直接查询该表(如果它包含数百万条记录呢?);而是查询Postgres信息架构,如下所示:
SELECT column_name
FROM information_schema.columns
WHERE
table_name = ?
AND column_name = ?;