0

我一直在尝试了解 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();

在这里我不确定如何输入我的值(因此是???)。

4

0 回答 0