当前位置: 首页 > 面试题库 >

撇号打破了我在PHP中的mysql查询

白腾
2023-03-14
问题内容

我的数据库中的名称记录偶尔包含撇号,例如,Joe's Bar而我刚刚用PHP编写了一个查询脚本,该脚本捕获了该字段并将其粘贴到带有通常$query = "SELECT address FROM restaurants WHERE name='$name'";名称的select语句中,某些餐馆名称中的撇号使Love Train脱轨。

如何避免这种情况发生?

答案 -使用与通过PHP将它们插入数据库时​​使用的相同技术。
反驳 -然后我遇到了同样的问题,然后直接使用PHPMyAdmin作弊并输入了麻烦的问题,但这再也不能忽略了。

感谢您抽出宝贵的时间在假期中回答这个问题。


问题答案:

您必须$name = mysql_real_escape_string($name);在该行之前。

您可能还想阅读SQL
Injections
,因为您的输入显然没有经过过滤。



 类似资料:
  • 问题内容: 在MySQL文档说,它应该是。但是,scite和mysql都可以正常工作。我看到了,并且有效。我该怎么办? 问题答案: 您引用的MySQL文档实际上比您提到的要多。它还说, A“ ”加引号的字符串内“ ”可以写为“ ”。 (此外,您已链接到表5.0 __的 MySQL 5.0版本。 特殊字符转义序列 ,当前版本是5.6 —但当前的表8.1。 特殊字符转义序列 看起来很相似。) 我认为有

  • 问题内容: 我尝试过将文本与utf8相互转换,这似乎没有帮助。 我越来越: 它应该是: 我从此网址获取此数据。 问题答案: 转换为HTML实体: 有关更多编码选项,请参阅mb_convert_encoding的文档。

  • 问题内容: 我一直在努力解决一个小问题。它已经存在了很多年,但这只是一个令人烦恼的问题,而不是一个严重的问题,我已经解决了这个问题。但是现在我想找出是否有人可以帮助我。我做了一些谷歌搜索,但没有成功。 如果我从php文件中的html textarea进行表单发布,如下所示: 当然还有一个提交按钮,依此类推。 值是问题所在:textarea的值同时具有“(引号)和’(撇号)。 要将其保存在mysql

  • 问题内容: 我正在使用参数化查询将我的经典ASP转换为.Net。我的问题是在我的经典应用程序中,我将用等号替换为撇号 现在,我想用真正的撇号替换数据库中的该值。我不确定语法应该如何做到这一点。我可以找到,但不确定如何替换。以下是我试图解决该错误的简单更新。 更新tblCustomer设置名称= replace(Name ,,’‘’) 问题答案: 加倍撇号以字符串文字形式将其转义 或使用功能

  • 问题内容: 我正在尝试在Access数据库的列名称中查询名称(Daniel O’Neal),但是Access报告该语句的语法错误: 由于名称中的撇号。 我该如何克服呢? 问题答案: 通过将其加倍可以逃脱,因此: 请注意,如果您接受用户输入的“ Daniel O’Neal”,则引号引起的问题将是一个严重的安全问题。您应该始终清理字符串或使用参数化查询。

  • 问题内容: 我要备份数据库时出现错误 有什么办法可以用表名(temp_01-01-000001)解决这个问题。 问题答案: 您可以编辑文件/system/database/drivers/mysql/mysql_utility.php的第132行 从: 至: