Php PDO:在获得结果时使用斜杠

Php PDO:在获得结果时使用斜杠,php,pdo,stripslashes,Php,Pdo,Stripslashes,我使用的是PDO准备的语句,因此在插入数据库之前需要添加斜杠 我想知道如何在不显示斜杠的情况下获得结果并将其显示在网站上 它是否像使用echo stripslashes($result->message)一样简单 以下是我的查询: $database->query('INSERT INTO table_name (field1, field2, field3) VALUES (?, ?, ?)', array($value1, $value2, $value3)); 下面是我的查询方法:

我使用的是PDO准备的语句,因此在插入数据库之前需要添加斜杠

我想知道如何在不显示斜杠的情况下获得结果并将其显示在网站上

它是否像使用
echo stripslashes($result->message)一样简单

以下是我的查询:

$database->query('INSERT INTO table_name (field1, field2, field3) VALUES (?, ?, ?)', array($value1, $value2, $value3));
下面是我的
查询
方法:

public function query($query, $bind=null)
{
    global $pdo;

    # Prepare Statment
    $this->statement = $this->pdo->prepare($query);

    # Execute Query
    $this->statement->execute($bind);
}

EDIT:
get\u magic\u quotes\u gpc
确实打开了,尽管WHM(cPanel)说它关闭了

准备好的语句不会在查询数据中添加斜杠。它们以占位符的形式将参数注入查询,这样占位符就不会被视为查询的一部分,而只是数据的一部分

因此,不添加斜线,也不需要
stripslashes()

如果为您添加了斜杠,请确保禁用PDO实例的准备语句模拟:

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

get\u magic\u quotes\u gpc
确实打开了,尽管WHM(cPanel)说它关闭了

你真的试过看吗?@andrewsi是的,它工作了。我想知道这是否是一种“正常”的方式。不要使用
global$pdo
,而是将其注入查询:
公共函数查询(pdo$pdo,$query,$bind=null)
使用pdo的优点之一不是因为它具有这样的特性,使查询更安全吗?从我读到的关于PDO的内容来看,我不需要清理查询。我将用我的查询的样子编辑我的OP。@德拉文:没错,你不需要清理你的查询,但不是因为它为你清理了查询。因为查询已经准备好了。举个例子:
从id=?
的表中选择*?是一个占位符,该查询被编译(在实际数据被注入查询之前),然后数据被注入,因为查询已经被编译,无论什么数据进入占位符,它都不会影响查询。这就是我的想法。在今天运行了更多的测试之后,它似乎只在
$\u POST
数据中添加了斜杠。是这样吗?如果我按照你的建议去做,我想我的查询仍然是安全的?@Draven:不,其他的东西为你添加了这些斜杠。因为有人添加了斜杠,而且由于预先准备好的语句,他们不会逃避任何东西,所以您可以在数据中看到这些斜杠。找出谁添加了这些斜杠,然后杀死它。然后,你就会开悟了,小蚱蜢。该死,为所有这些麻烦感到抱歉,谢谢你帮助我。我使用WHM(cPanel)编辑php.ini,并且
get\u magic\u quotes\u gpc
的设置表示它已关闭,但我决定无论如何保存它,以防万一,而且现在它确实已关闭。