下面的代码将图像上传到我的名为 .sql 的数据库upload_image
。
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('path') values('images/ao.png')
您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在第 1 行使用近 ''path') values('images/ao.png')' 的正确语法
这是 HTML 部分:
<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 都在一个代码中。
线路:
$sql = "Insert into upload_image('path') values('$target_path')";
应该:
$sql = "Insert into upload_image(path) values('$target_path')";
换句话说,您的查询中的列名不应该有引号。
为了可读性:可以使用带关键字的大小写
$sql = "INSERT INTO upload_image (path) VALUES ('$target_path')";
为了安全:可以使用准备好的语句
该代码容易受到 SQL 注入的影响,因此更好的方法是使用准备好的语句,即
$sql = "INSERT INTO upload_image (path) VALUES (?)";
$stmt = $conn->prepare($sql);
$stmt->bind("s", $target_path);
$stmt->execute();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句