我试图通过使用PDOStatement :: bindValue绑定参数来更新我的PHP代码。
代码正在接收一个带有键值对的数组,其名称(键)与MySQL数据库中的字段相同。
表就像
CREATE TABLE `kund` (
`kund_nummer` smallint(6) NOT NULL AUTO_INCREMENT,
`fornamn` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
`efternamn` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
`telefon` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
`org_nummer` char(10) COLLATE utf8_unicode_ci DEFAULT NULL,
`utflyttdatum` date DEFAULT NULL,
`kommentar` varchar(75) COLLATE utf8_unicode_ci DEFAULT NULL,
`sparad_datum` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`kund_nummer`),
UNIQUE KEY `efternamn` (`efternamn`,`org_nummer`)
) ENGINE=MyISAM
AUTO_INCREMENT=69
DEFAULT CHARSET=utf8
COLLATE=utf8_unicode_ci |
PHP代码是: ... $ fields = $ _POST; ...
$query = "INSERT INTO kund (";
foreach ($fields as $k => $v) {
$query .= $k . ",";
}
$query = substr($query, 0, -1);
$query .= ") VALUES (";
foreach ($fields as $k => $v) {
$query .= ":$k,";
}
$query = substr($query, 0, -1);
$query .= ")";
$stmt = $conn->prepare($query);
foreach ($fields as $k => $v){
$stmt->bindValue("':$k'",$v,PDO::PARAM_STR);
}
try {
$stmt->execute();
} catch (PDOException $ex) {
if ($ex->getCode() == 23000) {
}
echo $ex;
}
我收到错误:
例外' PDOException'消息' SQLSTATE [HY093]:无效 参数编号:参数未定义'
有人可以说出错了吗?问候。