Php 将编码的json发送到mysql时拒绝
我正在构建一些新脚本,用于将带空格的长文本添加到Php 将编码的json发送到mysql时拒绝,php,mysql,arrays,json,database,Php,Mysql,Arrays,Json,Database,我正在构建一些新脚本,用于将带空格的长文本添加到MySQL。我需要使用encode将数组元素从JSON发送到MySQL表。编码也工作良好。我的问题是,当我尝试插入数据时,MYSQL是拒绝数据 $day_details['description']=escape_string($_POST['description']); $data_[]=$day_details; $mysql_desc=json_encode($data_); $sql="INSERT INTO 'table' 'desc
MySQL
。我需要使用encode将数组元素从JSON
发送到MySQL
表。编码也工作良好。我的问题是,当我尝试插入数据时,MYSQL
是拒绝数据
$day_details['description']=escape_string($_POST['description']);
$data_[]=$day_details;
$mysql_desc=json_encode($data_);
$sql="INSERT INTO 'table' 'description' VALUES ('".$mysql_desc."')";
if($conn->query($sql)){
}
语法错误您有几个问题:
您需要使用mysqli_real_escape_string from escape_string函数中的mysqli_real_escape_string()或等效函数将jsoni转换为mysqli_real_escape_string()值…仔细阅读错误消息,它告诉您错误在哪里附近您可能需要转义
$mysql\u desc
,而不管转义描述(事实上,这就是您应该转义的内容)如何,您都需要转义mysqli\u real\u escape\u string()(或等效内容)jsoni从escape_string函数中使用mysqli_real_escape_string。当我将空格放入文本中时,显示错误。$sql=“INSERT into table_name(description)值….
仔细阅读错误消息,它会告诉您错误在哪里附近您可能需要转义$mysql_desc
,而不管转义说明如何(事实上,这就是您应该转义的全部内容)我认为这种情况是\\r\\@SasinduJayampathi,只要使用准备好的语句,JSON中的特殊字符就不会有问题。请注意,您根本不需要调用escape\u string
例程。让我试试吧,谢谢大家。这就是解决方案。我认为情况是\\r\\@SasinduJayampathi,只要您使用准备好的语句,JSON中的特殊字符就不应该有问题。请注意,您根本不需要调用escape\u string
例程。让我尝试一下。谢谢大家。这是解决方案。
$day_details['description']=$_POST['description'];
$data_[]=$day_details;
$mysql_desc=json_encode($data_);
$sql="INSERT INTO `table` (`description`) VALUES (?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('s', $mysql_desc);
if($stmt->execute()){
// do something
}