Php 转换为PDO,获得'';在数据库中插入带引号的$\u POST

Php 转换为PDO,获得'';在数据库中插入带引号的$\u POST,php,mysql,pdo,quote,Php,Mysql,Pdo,Quote,我肯定这是我犯了一些明显的错误,但我对PHP/mySQL非常陌生,为了安全起见,我将一个简单的用户注册系统转换为PDO。我读了很多文档和文章,但仍然头痛不已 简单HTML表单发布电子邮件地址,php脚本通过PDO与我的数据库连接良好,我在这里捕获电子邮件地址: $email = $db->quote($_POST["email"]); $query = $db->prepare("INSERT INTO userlogin (email) VALUES (:email)"); $

我肯定这是我犯了一些明显的错误,但我对PHP/mySQL非常陌生,为了安全起见,我将一个简单的用户注册系统转换为PDO。我读了很多文档和文章,但仍然头痛不已

简单HTML表单发布电子邮件地址,php脚本通过PDO与我的数据库连接良好,我在这里捕获电子邮件地址:

$email = $db->quote($_POST["email"]);

$query = $db->prepare("INSERT INTO userlogin (email) VALUES (:email)");

$query->bindParam(':email', $email, PDO::PARAM_STR);

$query->execute();
预期的数据库插入(或回显):name@email.com 实际数据库插入(或回显):'name@email.com"

看起来很简单,但显然我缺少一个基本概念。谢谢你的帮助

看起来很简单

对。取出第一行并保持此状态:

$query = $db->prepare("INSERT INTO userlogin (email) VALUES (:email)");
$query->bindParam(':email', $email, PDO::PARAM_STR);
$query->execute();
看起来很简单

对。取出第一行并保持此状态:

$query = $db->prepare("INSERT INTO userlogin (email) VALUES (:email)");
$query->bindParam(':email', $email, PDO::PARAM_STR);
$query->execute();

我的理解是,引用是防止SQL注入的重要步骤。也许这就是我误解的部分?是的,没错。试着跟随任何关于PDO的教程,看看他们是如何做到的。这个答案可以帮助你理解:这正是我需要的解释。谢谢你帮助我们初学者!我的理解是,引用是防止SQL注入的重要步骤。也许这就是我误解的部分?是的,没错。试着跟随任何关于PDO的教程,看看他们是如何做到的。这个答案可以帮助你理解:这正是我需要的解释。谢谢你帮助我们初学者!