Имеется такой код:
public function query($sql, $params = array())
{
$stmt = $this->db->prepare($sql);
if(!empty($params))
{
foreach($params as $key =>$val)
{
$stmt->bindValue(":", $key, $val);
}
}
$stmt->execute();
return $stmt;
}
при попытке его выполнить выходит сообщение "Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in "путь к файлу" on line 30" здесь указывается как раз на строчку $stmt->execute();
. В результате выводится пустой массив. В чем ошибка?
Ошибка в том, что вы не передали параметры для запроса. Параметр - это первый аргумент bindValue
, а не второй. То есть
$stmt->bindValue(":" . $key, $val);
Ну и цикл здесь не нужен вовсе, execute
сам умеет принимать массив параметров.
public function query($sql, $params = array())
{
$stmt = $this->db->prepare($sql);
$stmt->execute($params);
return $stmt;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня например сейчас URL имеет такой вид 1-perwaja_nowosthtml и отображается новость с id 1, а если URL сделать 2-perwaja_nowost
столкнулся с такой проблемой, что у меня неправильно отображается мое менюСкорей всего из-за стилей
В товарной накладной необходимо добавить сумму прописьюПробую так: