首页 > 解决方案 > 无法将特殊字符插入 MySQL 表

问题描述

我需要更新一个包含/n到 mysql 表中的字符串值,但在更新该字符串值后会创建新行。

我正在使用下面给出的一些代码。

require_once 'include/dbconfig.php';
$tracking_id='108597711876';
$payment_mode='Debit Card';
$card_name='Maestro Debit Card';
$status_message='SUCCESS';
$bank_ref_no='327446';
$str="tracking_id : ".$tracking_id."\\npayment_mode : ".$payment_mode."\\ncard_name : ".$card_name."\\nstatus_message : ".$status_message."\\nbank_ref_no : ".$bank_ref_no;
$qry ="UPDATE cb_all_state set comment='".$str."' WHERE id=1";
$sql=mysqli_query($connect,$qry);

我需要直接输入以下格式的字符串值。

tracking_id : 108597711876\npayment_mode : Debit Card\ncard_name : Maestro Debit Card\nstatus_message : SUCCESS\nbank_ref_no : 327446

但更新后,我在列中得到以下数据。

tracking_id : 108597711876
payment_mode : Debit Card
card_name : Maestro Debit Card
status_message : SUCCESS
bank_ref_no : 327446

这里实际上我需要输入字符串值,/n但它会在更新后创建新行。

标签: phpmysql

解决方案


mysqli_real_escape_string($str)应该在这里为您提供帮助,因为它将处理转义特殊字符,例如换行符。在您的代码中,这应该是:

$str="tracking_id : ".$tracking_id."\npayment_mode : ".$payment_mode.
  "\ncard_name : ".$card_name."\nstatus_message : ".$status_message.
  "\nbank_ref_no : ".$bank_ref_no;
$qry ="UPDATE cb_all_state set comment='". mysqli_real_escape_string($str). "' WHERE id=1";
$sql=mysqli_query($connect,$qry);

推荐阅读