Intereting Posts
Много раз 401 «Несанкционированный». На ajax-запросы что может привести к тому, что атрибуты $ model-> не получат правильные значения в Yii? htaccess "поддельные поддомены" Ошибка подключения HTTP POST PHP mail () работает из командной строки, но не apache Количество коротких сообщений WordPress, количество раз используемых в сообщении Как разработать зависимый пакет композитора без необходимости совершать или публиковать изменения? Сохранять разрыв строки из Textarea Как подражать MySQLs utf8_general_ci сопоставление в сравнении строк PHP Петля через массив PHP, закодированный в JSON laravel установил автоматический вариант where Функция пользовательской сортировки PHP, основанная на вводе строки? Установите опцию, доступную для выбора, на основе другого выбора php Как включить сообщения WordPress в пользовательский файл PHP? Как выбрать наименьшее значение из нескольких столбцов с помощью PHP

Ошибка pgsql 42601 с PDO :: execute

У меня проблемы с $ pdo-> execute ($ values).

Он отлично работает, если я использую $pdo->execute() без $ values:

 $dsn = sprintf('%s:host=%s;port=%s;dbname=%s', DB_TYPE, DB_HOST, DB_PORT, DB_NAME); $pdo = new PDO($dsn, DB_USER, DB_PASS, array()); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = 'SELECT * FROM "user" ORDER BY id DESC LIMIT 50 OFFSET 0'; $stmt = $pdo->prepare(trim($sql)); $stmt->setFetchMode(PDO::FETCH_OBJ|PDO::FETCH_PROPS_LATE); $stmt->execute(); echo "<pre>"; print_r($stmt->fetchAll()); echo "</pre>"; 

Он отлично работает, но когда я хочу добавить замену значений:

 $dsn = sprintf('%s:host=%s;port=%s;dbname=%s', DB_TYPE, DB_HOST, DB_PORT, DB_NAME); $pdo = new PDO($dsn, DB_USER, DB_PASS, array()); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = 'SELECT * FROM "user" ORDER BY ? ? LIMIT 50 OFFSET 0'; $values = array('id','DESC'); $stmt = $pdo->prepare(trim($sql)); $stmt->setFetchMode(PDO::FETCH_OBJ|PDO::FETCH_PROPS_LATE); $stmt->execute($values); echo "<pre>"; print_r($stmt->fetchAll()); echo "</pre>"; 

Это не работает. Он возвращает:

SQLSTATE [42601]: Синтаксическая ошибка: 7 ОШИБКА: синтаксическая ошибка в точке или рядом с «$ 2» LINE 1: SELECT * FROM «пользователь» ORDER BY $ 1 $ 2 LIMIT 50 OFFSET 0 ^ 'in …