2017-10-24 19 views
-1

EDITED私はHTMLフォームとPHPを使用してMySQLデータベースにデータをアップロードしています。情報を提出すると、アップロードした画像が特定のフォルダ(意図した方法)に移動しますが、データはデータベースにアップロードされません。 私は今、ほとんどのコードを追加しました。サイトは私にすべてを追加することを許可しませんでした。私の意見では、手元の問題とは何の関係もないいくつかの行を削除しました。多分あなたは問題を見るでしょう:フォームがサブミットされたときにMySQLデータベースが更新されない

<!DOCTYPE> 
<?php 

include("includes/db.php"); 

?> 
<html> 
<head> 
    <title>Inserting Product</title> 

<script src="//tinymce.cachefly.net/4.1/tinymce.min.js"></script> 
<script> 
    tinymce.init({selector:'textarea'}); 
</script> 
</head> 

<body bgcolor="grey"> 


<form action="insert_product.php" method="post" enctype="multipart/form- 
data"> 

    <table align="center" width="795" border="2" bgcolor="lime"> 

     </tr> 

     <tr> 
      <td align="right"><b>Product Category:</b></td> 
      <td> 
      <select name="product_cat" > 
       <option>Select a Category</option> 
       <?php 
    $get_cats = "select * from categories"; 

    $run_cats = mysqli_query($con, $get_cats); 

    while ($row_cats=mysqli_fetch_array($run_cats)){ 

    $cat_id = $row_cats['cat_id']; 
    $cat_title = $row_cats['cat_title']; 

    echo "<option value='$cat_id'>$cat_title</option>"; 
} 
       ?> 
      </select> 
</td> 
     </tr> 

     <tr> 
      <td align="right"><b>Product Publisher:</b></td> 
     <td>   <select name="product_dev"> 
      <option>Select a Publisher</option> 
      <?php 
      $get_devs = "select * from developers"; 

      $run_devs = mysqli_query($con, $get_devs); 

      while ($row_devs=mysqli_fetch_array($run_devs)){ 

      $dev_id = $row_devs['dev_id']; 
      $dev_title = $row_devs['dev_title']; 

      echo "<option value='$dev_id'>$dev_title</option>"; 
} 
      ?> 
     </select> 


      </td> 
     </tr> 

     <tr> 
      <td align="right"><b>Product Image:</b></td> 
      <td><input type="file" name="product_image" /></td> 
     </tr> 

     <tr> 
      <td align="right"><b>Product Price:</b></td> 
      <td><input type="text" name="product_price" required/></td> 
     </tr> 

     <tr> 
      <td align="right"><b>Product Keywords:</b></td> 
      <td><input type="text" name="product_keywords" size="50" 
required/></td> 
     </tr> 
     <tr align="center"> 
      <td colspan="7"><input type="submit" name="insert_post" 
value="Insert Product Now"/></td> 
     </tr> 
    </table> 
</form> 
</body> 
</html> 
<?php 

if(isset($_POST['insert_post'])){ 

    $product_title = $_POST['product_title']; 
    $product_cat= $_POST['product_cat']; 
    $product_pub = $_POST['product_pub']; 
    $product_dev = $_POST['product_dev']; 
    $product_price = $_POST['product_price']; 
    $product_desc = $_POST['product_desc']; 
    $product_keywords = $_POST['product_keywords']; 

    $product_image = $_FILES['product_image']['name']; 
    $product_image_tmp = $_FILES['product_image']['tmp_name']; 

    move_uploaded_file($product_image_tmp,"product_images/$product_image"); 

    $insert_product = "insert into products 
(product_cat,product_pub,product_dev, 
product_title,product_price,product_desc,product_image, 
product_keywords) values ('$product_cat','$product_pub','$product_dev', 
'$product_title','$product_price','$product_desc', 
'$product_image','$product_keywords')"; 

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

    if($insert_pro){ 

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

    } 
} 


?> 
+0

。 – Tomm

+1

あなたのコードがあなたのmySqlサーバに接続しているのを見ることさえできません。もしあなたがいくつかの部分を無視した場合は、完全なコードを追加してください。 –

+2

@Tomm彼は '$ insert_product'に' SQL'クエリを持っていると思いますが、そこには問題はほとんどありません。まず、彼の変数をSQLで直接使用するのは非常に悪いことです。あなたは現在の方法で人々があなたのプロジェクトに対してSQLインジェクション攻撃を行うことができるため、準備されたステートメントを使用する必要があります。また、エラーが発生した場合は、コンソールでエラーを確認してください。また、データベースへの接続が行われていることを確認してください。 – Sand

答えて

-3

あなたの質問はうまくいくようです。 MySQLi接続を確認してください。

それは次のようにする必要があります:あなたはここで任意のSQLクエリや要求を持っていない

$con = mysqli_connect("HOST", "USERNAME", "PASSWORD", "DATABASE_NAME"); 
+0

これは質問に対する答えではありません。 –

+0

私のマシンでこのクエリを実行しましたが、うまくいきました。 また、列のデータ型がPOSTED値をサポートしていない可能性があります。 –

関連する問題