@YourCommonSense ... почему?

я небольшая проблема с функцией подготовки mysqli_stmt. Вот мой запрос:

$params = array(
    "sisi",
    "some_string",
    5000,
    "date_added DESC"
);

$sql = "SELECT *
        FROM scenes
        WHERE scene_title LIKE ?
        AND scene_id > ?
        ORDER BY ?
        LIMIT ?";

Теперь, когда я привяжу параметры к массиву следующим образом (у меня есть действительный объект mysqli_stmt, созданный):

call_user_func_array(array($this->mysql_stmt, 'bind_param'), $params);

Порядок по не связан. Читаю на php.net (http://ca3.php.net/manual/en/mysqli.prepare.php)

Маркеры допустимы только в определенных местах операторов SQL. Например, они разрешены в списке VALUES () оператора INSERT (чтобы указать значения столбца для строки) или в сравнении со столбцом в предложении WHERE, чтобы указать значение сравнения.

Однако они не допускаются для идентификаторов (таких как имена таблиц или столбцов), в списке выбора, в котором указаны столбцы, которые должны быть возвращены оператором SELECT, или для указания обоих операндов двоичного оператора, такого как знак = равно.

Есть ли способ обойти это, или я собираюсь использовать mysql_real_escape_char () для предложения ORDER BY?

Ответы на вопрос(1)

Ваш ответ на вопрос