[英]Unable to insert Images record in MySQL Table
我正在創建一個PHP程序,將產品信息及其圖像作為輸入並將信息存儲在數據庫中。 我已經編寫了以下代碼,它在數據庫中插入了“產品信息”記錄,但沒有在數據庫中插入“圖像記錄”,並且還給了我一條錯誤消息。 請檢查並告訴我我在哪里出錯。 謝謝。
您的SQL語法有誤; 檢查與您的MySQL服務器版本相對應的手冊,以在第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注入,並且還應處理$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')";
嘗試使用這種方式插入sql:
$query= "insert into products (name, price, description, category_id )
VALUES( '$product_name', '$price', '$description', $category )";
$ price也必須放在引號內.....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.