PDO: НЕРВИЧЕСКИЙ НОМЕР ПАРАМЕТРА: смешанные и позиционные параметрыPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PDO: НЕРВИЧЕСКИЙ НОМЕР ПАРАМЕТРА: смешанные и позиционные параметры

Сообщение Anonymous »

I have come across this warning I've not seen before:


Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters in...


Ссылаясь на следующий запрос PDO (упростили функцию для простоты чтения): < /p>

$offset = 0;
$limit = 12;
function retrieve_search_posts($searchfield, $offset, $limit){

$where = array();

$words = preg_split('/[\s]+/',$searchfield);

array_unshift($words, '');
unset($words[0]);

$where_string = implode(" OR ", array_fill(0,count($words), "`post_title` LIKE ?"));

$query = "
SELECT p.post_id, post_year, post_desc, post_title, post_date, img_file_name, p.cat_id
FROM mjbox_posts p
JOIN mjbox_images i
ON i.post_id = p.post_id
AND i.cat_id = p.cat_id
AND i.img_is_thumb = 1
AND post_active = 1
WHERE $where_string
ORDER BY post_date
LIMIT :offset, :limit
DESC";
$stmt = $dbh->prepare($query);

foreach($words AS $index => $word){
$stmt->bindValue($index, "%".$word."%", PDO::PARAM_STR);
}
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
$stmt->execute();

$searcharray = $stmt->fetchAll(PDO::FETCH_ASSOC);

return $searcharray;
}
< /code>

Функция и запрос PDO работают нормально без смещения и предельных переменных, включенных в запрос. Итак, что может вызвать это предупреждение? < /P>

Спасибо < /p>

Подробнее здесь: https://stackoverflow.com/questions/158 ... parameters
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»