【问题标题】:Converting to PDO, Getting '' in Quoted $_POST inserts into Database转换为 PDO,将 '' in Quoted $_POST 插入数据库
【发布时间】:2013-10-23 16:28:23
【问题描述】:

我确定这是我犯了一些明显的错误,但我对 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'

看起来很简单,但显然我在这里缺少一个基本概念。感谢任何帮助。

【问题讨论】:

    标签: php mysql pdo quote


    【解决方案1】:

    看起来很简单,

    是的。取出第一行并保持这种方式:

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

    【讨论】:

    • 我的理解是,引用是防范SQL注入的重要一步。也许这就是我误解的部分?
    • 是的,完全正确。尝试遵循任何有关 PDO 的教程,看看他们是如何做到的。
    • 这个答案可以帮助你理解:stackoverflow.com/questions/8263371/…
    • 正是我需要的解释。感谢您帮助我们初学者!
    猜你喜欢
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 2016-02-25
    • 2014-04-17
    相关资源
    最近更新 更多