Возможный дубликат:
PHP PDO bindValue в LIMIT
Я не мог отображать данные при использовании LIMIT и / или OFFSET в инструкции подготовки, но я могу показать «Lei Lei», если я не использую LIMIT и OFFSET, не выглядит ли код неправильным?
$statement = $conn->prepare("SELECT id,username FROM public2 WHERE username = :name LIMIT :sta OFFSET :ppage"); $name = "Lei Lei"; $statement->execute(array(':name' => $name,':sta' => $start,':ppage' => $per_page));
Это было изменение от исходного кода, который работал:
$query_pag_data = "SELECT id,username from public2 LIMIT $start, $per_page"; $result_pag_data = mysql_query($query_pag_data) or die('MySql Error' . mysql_error());
Я нашел ответ!
$statement->bindValue(':sta1', (int) $start, PDO::PARAM_INT);
работает
$dbh->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );
позволит вам связывать переменные, не беспокоясь о них.
Изменить: Исправлено
$statement = $conn->prepare("SELECT id,username FROM public2 WHERE username = :name LIMIT :limit OFFSET :offset"); $name = "Lei Lei"; $statement->bindValue(':name', $name); $statement->bindValue(':limit', (int) $start, PDO::PARAM_INT); $statement->bindValue(':offset', (int) $per_page, PDO::PARAM_INT); $statement->execute();