相关疑难解决方法(0)

为什么PDO比mysql_real_escape_string更好地逃避MySQL查询/查询字符串?

我被告知我会更好地使用PDOMySQL转义,而不是mysql_real_escape_string.

也许我有一个脑死亡的日子(或者可能是因为我没有想象力是一个天生的程序员,而且我仍然处于PHP的新手阶段),但是检查了PHP手册并阅读了关于PDO的条目,我仍然不清楚PDO究竟是什么以及为什么它比使用更好mysql_real_escape_string.这可能是因为我还没有真正掌握OOP的复杂性(我假设它与OOP有关),但除了变量和数组值似乎在其前面有冒号之外,我仍然不确定它到底是什么以及你如何使用它(以及为什么它比它好mysql_real_escape_string.(它也可能与我没有真正理解'类'是什么的事实有关,所以,当我读到"PDO课程"时,我真的不是更聪明的.

在MySQL网站的"开发者专区"中读过两篇文章后,我仍然不清楚.由于我现在甚至无法弄清楚它到底是什么,我认为现在可能使用它有点超出我的范围,但我仍然有兴趣扩大我的教育并找出如何改进的方法.

任何人都可以用"简单的英语"向我解释PDO是什么(或指向我用简单英语写的主题的方向),以及你如何使用它?

php pdo escaping mysql-real-escape-string

48
推荐指数
4
解决办法
4万
查看次数

PHP:单引号与PDO逃脱

我是PHP和PDO的新手.我有一个关于PDO和单引号转义的非常基本的问题.我认为逃避不是必要的,但我仍然遇到了一些问题.

例如......我的数据库类中的以下方法在数据库中创建一个新对象.它是抽象的,我的所有类都扩展了数据库类.

public function  create() {
    $attributes = $this->attributes();
    $question_marks = array();
    foreach ($attributes as $key => $value) {
        $question_marks[] = "?";
    }
    $place_holder = array_intersect_key($attributes, get_object_vars($this));
    $place_holder = array_values($place_holder);
    $sql = "INSERT INTO ".static::$table_name." (";
    $sql .= join(", ", array_keys($attributes));
    $sql .= ") VALUES (";
    $sql .= join(", ", array_values($question_marks));
    $sql .= ")";
    $query = $handler->prepare($sql);
    $query->execute($place_holder);
}
Run Code Online (Sandbox Code Playgroud)

如果我创建说例如新用户.我可以毫不费力地将James O'Reilly这个名字输入数据库......

但是,当我想使用我的更新方法....

public function update() {
   $attributes = $this->attributes();
   print_r($attributes);
    $attribute_pairs = array();
    foreach($attributes as $key => $value) {
      if(isset($value)) …
Run Code Online (Sandbox Code Playgroud)

pdo escaping quote

0
推荐指数
1
解决办法
2326
查看次数

标签 统计

escaping ×2

pdo ×2

mysql-real-escape-string ×1

php ×1

quote ×1