Используя следующие связать несколько параметров динамически заявление:bindParam с Foreach странные результаты
$dbh = new PDO("mysql:host=localhost;dbname=name", USER, PASSWORD);
$params = array(':date' => '2014-02-01',
':amount' => 40,
':type' => 1
);
$query = "INSERT INTO entry (`date`, amount, type) VALUES (:date, :amount, :type)";
$stmt = $dbh->prepare($query);
foreach ($params as $param => $value) {
$stmt->bindParam($param, $value);
}
$stmt->execute()
код работает, но вставляет следующий текст в таблицу: 0000-00-00, 1,00, 1
Что здесь происходит?
Структура таблицы может быть полезна. – Pakspul
попытайтесь добавить тип переменной, также как и строки (строки) и т. Д. –
Попробуйте 'foreach ($ params as $ param => & $ value)' вместо 'foreach ($ params as $ param => $ value)'. См. Комментарий Вили: http://php.net/manual/en/pdostatement.bindparam.php –