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)){

}
语法错误

您有几个问题:

  • 表和列名不应包含在单引号中,如果需要,应使用反勾号(请参阅)
  • 列名应在括号中
  • 最后,您需要在转换为JSON后转义数据。但更好的是,使用预先准备好的查询,那么您根本不需要转义数据:
  • 您有几个问题:

  • 表和列名不应包含在单引号中,如果需要,应使用反勾号(请参阅)
  • 列名应在括号中
  • 最后,您需要在转换为JSON后转义数据。但更好的是,使用预先准备好的查询,那么您根本不需要转义数据:

  • 您需要使用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
        }