首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用php将图片上传到sql数据库时显示错误

使用php将图片上传到sql数据库时显示错误
EN

Stack Overflow用户
提问于 2018-06-07 04:55:52
回答 2查看 44关注 0票数 0

下面的代码将图像上传到我的名为upload_image的sql数据库。

代码语言:javascript
复制
if(isset($_POST['submit'])){
$target_path = "images/";
$target_path = $target_path . basename($_FILES['file']['name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $target_path)){
         $conn =new mysqli("localhost", "root", "", "upload_image");
         $sql = "Insert into upload_image('path') values('$target_path')";
         if($conn->query($sql)==TRUE){
             echo"<br><br>";
         }else{
             echo "Error on upload".$sql.$conn->error;
         }
    }   
}

显示的错误是

错误将图像转换为路径(‘upload_image’)值(‘uploadInsert /ao.png’)

您的SQL语法中有一个错误;请查看与您的MariaDB服务器版本相对应的手册,了解在第1行使用附近的''path')值(‘image/ao.png’)的正确语法

下面是HTML部分:

代码语言:javascript
复制
<form method="post" enctype="multipart/form-data">
<input type="hidden" value=="1000000" name="MAX_FILE_SIZE"/>
<input type="file" name="file"/>
<input type="submit" name="submit" value="Upload"/>

HTML和PHP都在一段代码中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-07 05:02:13

命令行:

代码语言:javascript
复制
$sql = "Insert into upload_image('path') values('$target_path')";

应该是:

代码语言:javascript
复制
$sql = "Insert into upload_image(path) values('$target_path')";

换句话说,查询中的列名两边不应该有引号。

可读性方面的可以使用带有关键字的大小写

代码语言:javascript
复制
$sql = "INSERT INTO upload_image (path) VALUES ('$target_path')";

用于安全性的可以使用预准备语句

代码容易受到SQL注入的攻击,因此更好的方法是使用预准备语句,即

代码语言:javascript
复制
$sql = "INSERT INTO upload_image (path) VALUES (?)";
$stmt = $conn->prepare($sql);
$stmt->bind("s", $target_path);
$stmt->execute();
票数 1
EN

Stack Overflow用户

发布于 2018-06-07 05:02:30

正确的语法应该是

代码语言:javascript
复制
INSERT INTO upload_image (path) VALUES ('$target_path')

不带引号的字段名

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50729459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档