在Insert之前转义变量中的单引号

时间:2014-08-18 14:55:42

标签: php mysql escaping

以下是我的插入代码的外观:

$values .= ($ta->account_toll_free_number != '') ? ",('" . $post_id . "', 'toll_free_number','" . $ta->account_toll_free_number . "')" : NULL;

这给了我:

(111, 'toll_free_number', '888-123-1234')

在变量中有单引号之前,哪种方法很有效。然后就打破了。有没有我可以在此之前清理/逃脱它?我只需要将单引号换成双引号吗?

2 个答案:

答案 0 :(得分:1)

我是这样做的。 我刚开始使用您的输出并为最后一部分添加了单引号。

  $values = mysql_real_escape_string("(111, 'toll_free_number', '888-'123-1234')");
  $query = "INSERT INTO yourtable (fieldname) values ('".$values."')";
  mysql_query($query) or die(mysql_error());

请参阅手册http://php.net/manual/en/function.mysql-real-escape-string.php

中的更多内容

答案 1 :(得分:0)

正如评论者指出的那样,我建议您使用PDO,因为这是一个逃避问题,并为您打开SQL注入漏洞。在您使用mysql_ *的更改中,首先尝试使用mysql_real_escape_string()转义变量。