Как применить bindValue метод в ПРЕДЕЛЬНОМ пункте?

Вот снимок моего кода:

$fetchPictures = $PDO->prepare("SELECT * 
    FROM pictures 
    WHERE album = :albumId 
    ORDER BY id ASC 
    LIMIT :skip, :max");

$fetchPictures->bindValue(':albumId', $_GET['albumid'], PDO::PARAM_INT);

if(isset($_GET['skip'])) {
    $fetchPictures->bindValue(':skip', trim($_GET['skip']), PDO::PARAM_INT);    
} else {
    $fetchPictures->bindValue(':skip', 0, PDO::PARAM_INT);  
}

$fetchPictures->bindValue(':max', $max, PDO::PARAM_INT);
$fetchPictures->execute() or die(print_r($fetchPictures->errorInfo()));
$pictures = $fetchPictures->fetchAll(PDO::FETCH_ASSOC);

Я добираюсь

У Вас есть ошибка в Вашем синтаксисе SQL; проверьте руководство, которое соответствует Вашей серверной версии MySQL для правильного синтаксиса для использования близкий ''15', 15' в строке 1

Кажется, что PDO добавляет одинарные кавычки к моим переменным в ПРЕДЕЛЬНОЙ части кода SQL. Я искал его, я нашел эту ошибку, которая я думаю, связан: http://bugs.php.net/bug.php?id=44639

Это то, на что я смотрю? Эта ошибка была открыта с апреля 2008! Что мы, как предполагается, делаем тем временем?

Я должен создать некоторое разбиение на страницы и должен удостовериться, что данные являются достоверными, безопасными от внедрения SQL, прежде, чем отправить sql оператор.

112
задан systemovich 22 August 2016 в 09:05
поделиться

2 ответа

Одной из простых задач было бы классифицировать текст как хорошо написанный или не использующий модель n-граммового языка. Для этого сначала нужно обучить языковую модель коллекции хорошо написанного текста. Учитывая новый фрагмент текста, вы можете затем запустить модель над ней и передать ее другим дочерним инструментам NLP, только если недоумение по слову является достаточно низким (то есть, если оно выглядит достаточно похоже на хорошо написанный обучающий текст).

Чтобы получить наилучшие результаты, вы, вероятно, должны обучить свою модель n-граммового языка тексту, который похож на то, что использовалось для обучения других инструментов NLP, которые вы используете. То есть, если вы используете синтаксический анализатор структуры фразы , обученный на newswire, то вы также должны обучить свою модель n-граммового языка на newswire.

С точки зрения программных средств, которые можно использовать для чего-то подобного, SRILM было бы хорошим местом для запуска.

Однако альтернативным решением будет попытка адаптировать любые инструменты NLP, которые вы используете, к тексту, который вы хотите обработать. Одним из подходов к подобному подходу было бы самообучение, при котором вы запускаете инструменты NLP над типом данных, которые хотите обработать, а затем переучиваете их на собственном выходе. Например, McClosky et al 2006 использовали этот метод, чтобы взять синтаксический анализатор, первоначально обученный в Wall Street Journal, и адаптировать его для анализа биомедицинского текста.

-121--2147946-

Если посмотреть на отчет об ошибке, может сработать следующее:

$fetchPictures->bindValue(':albumId', (int)$_GET['albumid'], PDO::PARAM_INT);

$fetchPictures->bindValue(':skip', (int)trim($_GET['skip']), PDO::PARAM_INT);  

, но вы уверены, что входящие данные верны? Поскольку в сообщении об ошибке после числа появляется только одна кавычка (в отличие от целого числа, заключенного в кавычки). Это также может быть ошибкой для входящих данных. Можете ли вы сделать print _ r ($ _ GET); , чтобы узнать?

-121--7â71-

Я помню, что у меня была эта проблема раньше. Приведите значение к целому числу перед передачей его функции привязки. Я думаю, это решает его.

$fetchPictures->bindValue(':skip', (int) trim($_GET['skip']), PDO::PARAM_INT);
159
ответ дан 24 November 2019 в 02:49
поделиться

При просмотре отчета об ошибке может сработать следующее:

$fetchPictures->bindValue(':albumId', (int)$_GET['albumid'], PDO::PARAM_INT);

$fetchPictures->bindValue(':skip', (int)trim($_GET['skip']), PDO::PARAM_INT);  

но уверены ли вы, что ваши входящие данные верны? Поскольку в сообщении об ошибке, кажется, есть только одна кавычка после числа (в отличие от всего числа, заключенного в кавычки). Это также могло быть ошибкой с вашими входящими данными. Можете ли вы сделать print_r ($ _ GET); , чтобы узнать?

15
ответ дан 24 November 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: