gpt4 book ai didi

php - 无法在 MySQL 表中插入图像记录

转载 作者:行者123 更新时间:2023-11-29 13:43:43 26 4
gpt4 key购买 nike

我正在创建一个 PHP 程序,它将产品信息及其图像作为输入并将信息存储在数据库中。我编写了以下代码,它在数据库中插入“产品信息”记录,但不在数据库中插入“图像记录”,并且还给了我一条错误消息。请检查并告诉我哪里出错了。谢谢。

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
</body>
</html>
<?php
global $current_id;
session_start();
if(isset($_SESSION['username']))
{


include 'connect.php';

$select_query= 'Select * from category';
$select_query_run = mysql_query($select_query);

echo "
<form action='insert_product.php' method='POST' enctype='multipart/form-data' ></br>

Product Name: <input type='text' name='product_name' /></br>

Price : <input type= 'text' name= 'price' /></br>

Description : <input type='text' name='description' />*Seperate by Comma</br>

File : <input type='file' name= 'image' >


";



/*------------------
Drop Down List Start
------------------*/


echo "<select name='category'>";


while ($select_query_array= mysql_fetch_array($select_query_run) )
{

echo "<option value='".$select_query_array['category_id']."' >".
htmlspecialchars($select_query_array["name"])."</option>";


}

$selectTag= "<input type='submit' value='Insert' /></select></form>";

echo $selectTag;

/*-----------------
Drop Down List End
------------------*/








if(isset($_POST['product_name']) && isset($_POST['price']) && isset($_POST['description']) )
{
$product_name = $_POST['product_name'];
$price = $_POST['price'];
$description = $_POST['description'];
$category = $_POST['category'];




$query= "insert into products (name, price, description, category_id )
VALUES( '$product_name', $price, '$description', $category )";


if($query_run= mysql_query($query) )
{

echo 'Data Inserted';
$current_id= mysql_insert_id();



}
else
{
'Error In SQL'.mysql_error();
}
}

else
{
echo 'Plesae fill all the Fields';
}


/*-------------------
IMAGE QUERY
---------------*/


$file =$_FILES['image']['tmp_name'];


if(!isset($file))
{
echo 'Please select an Image';

}
else
{
$image_check= getimagesize($_FILES['image']['tmp_name']);

if($image_check==false)
{
echo 'Not a Valid Image';
}
else
{

$image =file_get_contents ($_FILES['image']['tmp_name'] );
$image_name =$_FILES['image']['name'];
$image_query ="insert into product_images VALUES ($current_id, '$image_name', $image)";


// $image_query= "INSERT INTO `product_images` (`product_id`, `name`, `image`)
//VALUES ('1', '{$image_name}', '{$image}')";


if (mysql_query($image_query))
{

//if ($image_query =mysql_query (insert into product_images values
// ($current_id, $image_name, $image"))




// echo $current_id;
//echo 'Successfull';
}
else
{
echo "<br>". mysql_error();
}
}

}
/*-----------------
IMAGE QUERY END
---------------------*/



}

else
{
echo 'You Must Log in To View this Page!';
}
?>

最佳答案

两个问题。

首先,您应该对值进行转义以防止 SQL 注入(inject),并处理 $image 包含二进制数据的事实。

其次,您必须在 SQL 中引用 $image

试试这个:

$image          =mysql_real_escape_string(file_get_contents ($_FILES['image']['tmp_name']    ));
$image_name =mysql_real_escape_string($_FILES['image']['name']);
$image_query ="insert into product_images VALUES ($current_id, '$image_name', '$image')";

关于php - 无法在 MySQL 表中插入图像记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17738504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com