我一直在尝试了解 PDO,但我对插入语句有疑问。我正在尝试添加一个值数组(即,以下示例)
data = array (
fname -> Jay
lname -> Doe
phone -> 8137587733
email -> me@me.com
);
字段和值被分解为字符串,如下所示:
$fields = '`' . implode('`, `', array_keys($data)) . '`';
$values = '\'' . implode('\', \'', $data) . '\'';
...但我希望能够使用准备好的语句来防止可能的 SQL 注入。
并非所有字段都是必需的。例如,电话(来自 $_POST['phone'])可能为空,并且数据库字段接受该字段的 NULL 输入。
可以老办法:
mysql_query("INSERT INTO 'users' ($fields) VALUES ($values)");
以某种方式调整以与 PDO 一起使用,或者我需要执行以下操作:
$sql = "INSERT INTO users VALUES (:fname, :lname, :phone:, :email)";
$st = $conn->prepare($sql);
$st->bindValue( ":fname", ???, PDO::PARAM_STR );
$st->bindValue( ":lname", ???, PDO::PARAM_STR );
$st->bindValue( ":phone", ???, PDO::PARAM_STR );
$st->bindValue( ":email", ???, PDO::PARAM_STR );
$st->execute();
在这里我不确定如何输入我的值(因此是???)。