php - 无法将特殊字符插入 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
但它会在更新后创建新行。
解决方案
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);
推荐阅读
- javascript - 打字稿:valueOf对象算术打字
- aspectj - 在抛出 NPE 的相同方法上的 AspectJ 执行切入点
- excel - 使用变量作为范围内的列名
- java - java中的Jsoup.parse()和Jsoup.ParseBodyFragment()有什么区别?
- redis - Redis Pub/Sub - 发布者也是订阅者?
- javascript - TypeError:WooCommerceRestApi 不是构造函数
- javascript - 在 puppeteer 中将函数传递给 evaluate()
- vue.js - 在 Nuxt 应用程序中为动态路由生成 xml 站点地图
- excel - 根据一个列中的唯一值和另一列中的最大重复值更新列
- python-3.x - 将列表添加到 DF 列