mysqli_real_escape_string - 似乎已经停止工作了

时间:2017-08-01 08:33:17

标签: php mysqli

我一直在使用PHP和&amp ;; MySQL的。到目前为止,一切都很好,但现在当我从文本字段保存数据时,它已经开始添加转义字符。例如,尝试保存字符串

  

很好

另存为

  

很好

我使用的插入查询是

$query = "INSERT INTO jobs(customerId,
 jobDateReceived,
 jobReceivedBy,
 jobPONo,
 jobCompletionDate,
 jobPrice,
 jobIncExVat,
 jobPriceEstimate,
 jobZeroPrice,
 jobDescription,
 jobEngraving,
 jobEngraveComplete,
 jobLaser,
 jobLaserComplete,
 jobWood,
 jobWoodComplete,
 jobQualityControl)
 VALUES('".$_SESSION['customerId']."', '"
 .$_POST['recDateField']."', '"
 .$_POST['recByField']."', '"
 .$_POST['purchOrderField']."', '"
 .$_POST['completionDateField']."', '"
 .$_POST['priceField']."', '"
 .$_POST['vatRadios']."', '"
 .$estimateYN."', '"
 .$zeroPriceYN."', '"
 .mysqli_real_escape_string($link, $_POST['descriptionField'])."', '"
 .$engravingYN."', 'N', '"
 .$laserYN."', 'N', '"
 .$woodYN."', 'N', 'I')";

任何人都可以帮助解决为什么这可能已经停止工作了吗?

1 个答案:

答案 0 :(得分:0)

1)建议使用预处理语句:使用带有绑定参数的预准备语句允许撇号

2)使用这些函数存储数据,然后保存到数据库,它们将保留撇号。

使用htmlentities( $yourdata, ENT_QUOTES | ENT_HTML5, $encoding = 'UTF-8' ) 将特殊字符转换为html实体。

使用htmlspecialchars()

使用addslashes() 使用反斜杠转义特殊字符