PDO Postgres - проверьте, существует ли столбец, и выполните действие в зависимости от условий - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь проверить, существует ли столбец. Если это так, то я хочу обновить значение, а если нет, я хочу изменить таблицу и добавить столбец со значением 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 голосов
/ 11 декабря 2018

Вы не можете передать имя таблицы в качестве параметра связывания, например, вам нужно использовать динамический SQL для достижения этой цели.Но если вы просто хотите проверить, существует ли столбец в таблице, не запрашивайте таблицу напрямую (что, если она содержит миллионы записей?);вместо этого запросите информационную схему Postgres следующим образом:

SELECT column_name 
FROM information_schema.columns 
WHERE
    table_name = ?
    AND  column_name = ?;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...