gpt4 book ai didi

php - MySQL 表中的斜线,但使用 PDO 和参数化查询。这是怎么回事?

转载 作者:行者123 更新时间:2023-11-29 20:50:53 26 4
gpt4 key购买 nike

好吧,所以我更新数据库表的代码具有以下不同风格:

$query = "
insert into Comment
(Comment, CommentDate, Rating, UserRid)
values
(:comment, now(), 0, :userrid )" ;

try {
$db_conn = new PDO('mysql:host='.$db_server.';dbname='.$db_name, $db_username, $db_password );

$db_conn->beginTransaction();
$prep = $db_conn->prepare($query);
$prep->bindParam(':comment', $comment, PDO::PARAM_STR, 500);
$prep->bindParam(':userrid', $userrid, PDO::PARAM_INT, 20);
$prep->execute();

$db_conn->commit();
} catch (PDOException $e) {
$db_conn.rollBack();
echo "Error!: " . $e->getMessage() . "<br/>";
die();
}

在上面,评论是通过帖子从另一个页面进来的。正在通过函数调用正确设置 Userrid。一切正常,除了斜杠被添加到表格中。

我读过的所有内容都表明,为了避免在有人输入撇号时出现斜杠,我应该使用参数化查询。如果我没记错的话,我很确定这就是我正在做的事情。我错过了什么吗?谁能让我知道我做错了什么?

提前致谢,迈克尔

最佳答案

可能你已经magic_quotes_gpc()打开后,您需要执行以下操作:

if (get_magic_quotes_gpc() == true)
{
$comment = stripslashes($comment);
$userrid = stripslashes($userrid);
}

如果您使用 PHP 5.3+,您可以通过将以下代码行放在文件顶部来摆脱所有神奇的引用变量:

if (get_magic_quotes_gpc() === 1)
{
$_GET = json_decode(stripslashes(json_encode($_GET, JSON_HEX_APOS)), true);
$_POST = json_decode(stripslashes(json_encode($_POST, JSON_HEX_APOS)), true);
$_COOKIE = json_decode(stripslashes(json_encode($_COOKIE, JSON_HEX_APOS)), true);
$_REQUEST = json_decode(stripslashes(json_encode($_REQUEST, JSON_HEX_APOS)), true);
}

如果您运行的是较低版本的 PHP,您应该 take a look at this page .

关于php - MySQL 表中的斜线,但使用 PDO 和参数化查询。这是怎么回事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38073413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com