【问题标题】:How to INSERT string with single quote ' symbol [duplicate]如何用单引号'符号插入字符串[重复]
【发布时间】:2016-08-26 07:41:36
【问题描述】:

我想使用以下方法插入 MySQL 数据库:

$sql = "INSERT INTO table (title1) VALUES ('$myVar')";

但问题是$myVar 可以包含单引号(' 符号,例如在“白痴”中)。有人能告诉我如何将变量中的任何单引号作为一个字母而不是一段代码来处理吗?

(我知道论坛里已经有这方面的帖子了,但我不太了解他们的解决方案,抱歉重复发帖)

【问题讨论】:

  • 要么“转义”$myVar 的值;或者(更好)切换到使用带有绑定变量的准备好的语句,当绑定将为您转义它时

标签: php mysql sanitization


【解决方案1】:

您可能想用其中的两个替换每个单引号。

像这样 $myvar = "白痴";

But resist the urge and escape it instead:

<?php $var = "Hello !! idiot's";

 mysql_real_escape_string($var);?>

even better, use PDO

【讨论】:

  • 好主意,但我无法手动逃脱它们。 mysql_real_escape_string($var); 对我不起作用:(
  • 如果你使用 PDO 语句,这取决于你使用的是什么,那么不需要工作它会自动执行。如果您使用的是 mysql 或 mysqli,则必须使用转义函数
  • @NareshKumar - PDO 不会自动为您执行此操作....如果您使用绑定变量,它将自动为您完成,您可以将绑定变量与 PDO 或 MySQLi 一起使用
  • @MarkBaker 感谢您的更正,我忘了说如果我们使用绑定变量它会这样做:) :) =)
【解决方案2】:

像这样使用mysqli_real_escape_string

$myVar= mysqli_real_escape_string($link,$myVar);

然后是您的查询。

建议也使用PDO

【讨论】:

猜你喜欢
  • 2013-05-29
  • 2017-09-08
  • 2015-07-01
  • 1970-01-01
  • 2011-01-27
  • 1970-01-01
  • 2014-05-12
  • 2015-11-29
  • 1970-01-01
相关资源
最近更新 更多