我一直在使用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')";
任何人都可以帮助解决为什么这可能已经停止工作了吗?
答案 0 :(得分:0)
1)建议使用预处理语句:使用带有绑定参数的预准备语句允许撇号
2)使用这些函数存储数据,然后保存到数据库,它们将保留撇号。
使用htmlentities( $yourdata, ENT_QUOTES | ENT_HTML5, $encoding = 'UTF-8' )
将特殊字符转换为html实体。
使用htmlspecialchars()
或
使用addslashes()
使用反斜杠转义特殊字符