带有formdata的值可以是文本数据类型吗?

问题描述 投票:0回答:1

我使用formData将数据上传到服务器,并将要保存为正文的数据作为文本数据类型上传到数据库中。我发现,当有标点符号如:[['-“ etc。作为formData中的值时,它会出现以下错误:SyntaxError:JSON中位置0处的意外标记let formData = new FormData(); formData.append("image", {uri: this.state.ImageSource.uri, name: 'image.jpg', type: 'image/jpeg'}); formData.append('video', this.state.video); formData.append('title', this.state.title); formData.append('body', this.state.body); formData.append('categories', this.state.category); let data = { method: 'POST', headers: { "Content-Type": "multipart/form-data", }, body: formData }; const response = await fetch(fetchUrlPhp, data);

这是我在服务器端收到的错误:

致命错误:未被捕获的PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在D:\ XAMPP \ htdocs \ own_website \ portfolio \ handle_post.php:69中的第1行的'blog','2019-12-24')'附近使用

这是哪个查询/行:

$query = $connect->query("insert into posts ( image, video, title, body, categories, postDate ) VALUES('$target_dir', '$video', '$title', '$body', '$categories', '$date')");

javascript php form-data
1个回答
0
投票
根据@Barmar的评论,我解决了这个问题。

问题是您在其中一个变量中使用了不转义的引号。

这里是答案,只需要在我的php代码中进行一些调整:

// From $query = $connect->query("insert into posts ( image, video, title, body, categories, postDate ) VALUES('$target_dir', '$video', '$title', '$body', '$categories', '$date')"); // To $sql = "INSERT INTO posts(image, video, title, body, categories, postDate) VALUES(:image, :video, :title, :body, :categories, :postDate)"; $query = $connect->prepare($sql); $query->execute(array(':image' => $target_dir, ':video' => $video, ':title' => $title, ':body' => $body, ':categories' => $categories, ':postDate' => $date));

回答我自己的问题:formdata的值可以是文本数据类型吗?它是一个几乎等于文本的字符串,但最后,formdata语法不会出现标点问题。之所以对我不起作用,是因为服务器端的代码。
© www.soinside.com 2019 - 2024. All rights reserved.