HY! 这是我的HTML代码......
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Add New Templete</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php include 'side.php'; ?>
<div class="main">
<h2>Add New Templete</h2>
<form method="post" action="add.php" enctype="multipart/form-data">
<table border="1px solid">
<tr>
<td>Templete Name:</td><td><input type="text" name="temp_name"></td></tr>
<tr>
<td>Templete Category</td><td><input type="text" name="category"></td></tr>
<tr>
<td>Templete Image</td><td><input type="file" name="image"></td></tr>
<tr>
<td>Templete Discription</td><td><input type="text" name="decp"></td></tr>
<tr>
<td>Templete Quantity</td><td><input type="text" name="qty"></td></tr>
<tr>
<td>Templete Price</td><td><input type="text" name="price"></td></tr>
<tr>
<td></td>
<td>
<input type="submit" value="ADD">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
这是我的PHP代码
<?php
include 'connection.php';
$name=$_POST['temp_name'];
$cat=$_POST['category'];
$image=$_POST['image'];
$desc=$_POST['decp'];
$qty=$_POST['qty'];
$price=$_POST['price'];
$qry="INSERT INTO templetes(templete_name,category,image,description,quantity,price)VALUES('$name','$cat','$image','$desc','$qty','$price')";
$res=mysql_query($qry,$con);
if($res)
{
echo "record inserted";
}
mysql_close($con);
?>
每件事都很好,数据将存储在数据库中,但图像不存储在数据库中,它表示“....... line ....上的未定义索引图像”意味着它将显示未定义的索引错误。除图像外,所有数据都会存储?
答案 0 :(得分:1)
$_POST['image'];
你无法在$ _POST中获取文件,请使用
$_FILES['image']
当您将图像插入表格时,必须将其从字符串转换为二进制。这是您的解决方案 -
connection.php
<?php
$con = mysqli_connect("localhost", "root", "", "todo");
if (!$con) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
?>
和add.php
<?php
include 'connection.php';
$name=$_POST['temp_name'];
$cat=$_POST['category'];
$image=$_FILES['image'];
$desc=$_POST['decp'];
$qty=$_POST['qty'];
$price=$_POST['price'];
$imgData =addslashes (file_get_contents($_FILES['image']['tmp_name']));;
$qry="INSERT INTO templetes(templete_name,category,image,description,quantity,price)VALUES('$name' ,'$cat','{$imgData}','$desc','$qty','$price')";
$res=mysqli_query($con,$qry);
if($res)
{
echo "record inserted";
}
mysqli_close($con);
?>
记住数据库中图像字段的数据类型应该是BLOB或大BLOB。但请记住,这不是最安全或最酷的方式来完成这项工作。
答案 1 :(得分:0)
$_POST['image'];
您无法在$_POST
中获取文件
请使用
$_FILES['image']
此外,您应该使用move_uploaded_file
函数在服务器目录上移动上传的文件。
move_uploaded_file($_FILES['image']['tmp_name'], './you_dir_path'.$_FILES['image']['name'])
答案 2 :(得分:0)
试试这个:
$image=$_FILES['image'];