微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用php mysqli准备语句插入带正斜杠的字符串时出现问题

如何解决使用php mysqli准备语句插入带正斜杠的字符串时出现问题

我对使用 MysqLi 准备好的语句比较陌生,并且在插入包含正斜杠的字符串时遇到问题。

这是我正在使用的代码示例:

// $MysqLi connection
$rxcui = null;
$name = null;
$synonym = null;
$tty = null;

$sql = "INSERT INTO fda_oral (id,rxcui,`name`,`synonym`,tty,hide,created,updated) VALUES (NULL,?,Now(),Now() )";
$stmt = $MysqLi->prepare($sql);
$stmt->bind_param("ssss",$rxcui,$name,$synonym,$tty);

$rxcui = "201903";
$name = "acyclovir 40 MG/ML Oral Suspension [Zovirax]";
$synonym = "Zovirax 40 MG/ML Oral Suspension";
$tty = "SBD";

if ($stmt->execute()) {
    echo "success";
} else {
    echo "Failed";
}

这是失败的。

如果我使用没有斜线的刺,我就成功了,例如)

$name = "acyclovir 400 MG [Zovirax]";
$synonym = "Zovirax 400 MG Oral Suspension";

从我读过的所有内容来看,听起来好像准备好的语句应该处理字符串中的任何特殊字符 - 事实上,在处理可能包含特殊字符的字符串时,这似乎是推荐的解决方案。>

虽然看起来没有必要,但我确实尝试过

 $name = $MysqLi->real_escape_string($name);

我确定我在这里遗漏了一些简单的东西,但我无法弄清楚我哪里出错了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。