2017-07-26 4 views
1

このクエリの問題は誰でも知っていますか?私がフォームに記入するたびに、「問題!クエリは常に出力するProbmlem

if(isset($_POST['submit'])){ 
//getting the text data from the fields 
$title = $_POST['title']; 
$cat= $_POST['cat']; 
$desc = $_POST['desc']; 
$qty = $_POST['qty']; 
$price = $_POST['price']; 
$status = $_POST['status']; 



//getting the image from the field 
$image = $_FILES['image']['name']; 
$image_tmp = $_FILES['image']['tmp_name']; 

move_uploaded_file($image_tmp,"images/drinks/$image"); 


$insert_product = "insert into drinks (title,cat,image,desc,qty,price,status) values ('$title','$cat','$image','$desc','$qty','$price','$status')"; 

$insert_pro = mysqli_query($con, $insert_product); 

if($insert_pro){ 

echo "<script>alert('Drink Has been inserted!')</script>"; 
echo "<script>window.open('index.php?viewdrink','_self')</script>"; 

} 
else{ 
    echo "<script>alert('Problem!')</script>"; 
} 
} 

このコードを改善して動作させるにはどうすればいいですか?

+0

あなたは本当のエラーをチェックする方法を知っていますか?あなたは1つ、大きなものを持っています。 –

+0

私は分かりません、var_dump() –

+0

'$ con'は何ですか? –

答えて

2

DESCはMySQLの予約語です。その列の名前を使い続けるには、それをティックで囲む必要があります。

$insert_product = "insert into drinks (title,cat,image,`desc`,qty,price,status)...."; 

else{...}中)クエリにmysqli_error($con)を使用した、それは構文エラーを通知しているでしょう。

また、SQLインジェクションも可能です。準備されたステートメントを使用します。

それがまだ失敗する場合、注入を引き起こし、すべての配列に値が含まれていることだろう挿入される文字が無いことを確認してください。いずれの場合でも、データベースに挿入されているすべての値をエスケープする必要があります。

使用PHPのエラー報告:

+0

ありがとうございました。 –

+0

@SaqibMalikよろしくお願いします。 –