2016-03-04 53 views
-1

我正试图向数据库插入详细信息。它会运行成功消息,但不会将任何数据插入数据库。尝试不同的方式,但仍然没有数据插入到数据库。查询运行但不向数据库插入数据

我已更新我的代码以显示整个过程。 代码:

 <?php 

$con = mysqli_connect("localhost","root","","the_official_one"); 
// Check connection 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 


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

    $prod_name = strtoupper($_POST['prod_name']); 
    $prod_brand = $_POST['prod_brand']; 
    $prod_cat = $_POST['prod_model']; 
    $prod_price = $_POST['prod_price']; 
    $prod_desc = $_POST['prod_desc']; 
    $prod_qty = $_POST['prod_qty']; 
    $d = date("Y-m-d"); 

    mysqli_query($con,"INSERT into products(product_cat, product_brand, product_title, product_price, product_desc, product_qty, product_image, date) 
    VALUES ('" . $prod_cat . "','" . $prod_brand . "','" . $prod_name . "','" .$prod_price . "','" . $prod_desc . "','" . $prod_qty . "', '" . $prod_name . "', '" . $d . "')"); 

    $uniq_id = mysqli_insert_id($con); 
    echo $uniq_id." ";  



    foreach($_FILES['product_image']['tmp_name'] as $key => $tmp_name){ 

    $name = $_FILES['product_image']['name'][$key]; 
    $tmpname = $_FILES['product_image']['tmp_name'][$key]; 
    $type = $_FILES['product_image']['type'][$key]; 
    $size = $_FILES['product_image']['size'][$key];   

    mkdir("product_images/$prod_name/"); 
    $dir = "product_images/$prod_name/"; 

    $move = move_uploaded_file($tmpname, $dir.$name); 
    $path = "$prod_name/".$_FILES['product_image']['name'][$key]; 
    $img = $_FILES['product_image']['name'][$key]; 

    if($move) {        
     $sql = mysqli_query($con,"INSERT into product_images(prod_id, image) VALUES ('".$uniq_id."', '".$img."')"); 
     $query = mysqli_query($con,"update products set product_image_1='$path' where product_title='$prod_name'"); 

    if($query) { 
     header('location: add_prods.php?message=success'); 
    } else { 
     header('location: add_prods.php?message=failed'); 
    } 

    } else { 
     echo '<hr>Picture upload failed<br /><hr />'; 
    } 
    } 
    }  

    ?> 

的代码错误是:

 mysqli_query($con,"INSERT into products(product_cat, product_brand, product_title, product_price, product_desc, product_qty, product_image, date) 
    VALUES ('" . $prod_cat . "','" . $prod_brand . "','" . $prod_name . "','" .$prod_price . "','" . $prod_desc . "','" . $prod_qty . "', '" . $prod_name . "', '" . $d . "')"); 
+0

您使用的是交易吗? –

+0

如何获得'$ con'变量? –

+0

@ThomasRollet'$ con = mysqli_connect(“localhost”,“root”,“”,“the_official_one”); //检查连接 if(mysqli_connect_errno()) echo“无法连接到MySQL:”。 mysqli_connect_error(); }' – emilkitua

回答

1
mysqli_autocommit($con,TRUE); 

mysqli_query($con,"INSERT into products(product_cat, product_brand, product_title, product_price, product_desc, product_qty, product_image, date) 
VALUES ('" . $prod_cat . "','" . $prod_brand . "','" . $prod_name . "','" .$prod_price . "','" . $prod_desc . "','" . $prod_qty . "', '" . $prod_name . "', '" . $d . "')"); 

OR

mysqli_commit($con); 

你应该考虑关闭连接完成后无论哪种方式。

mysqli_close($con); 

如果没有这些工作,尝试输出的

mysqli_query($con,"INSERT into products(product_cat, product_brand, product_title, product_price, product_desc, product_qty, product_image, date) 
VALUES ('" . $prod_cat . "','" . $prod_brand . "','" . $prod_name . "','" .$prod_price . "','" . $prod_desc . "','" . $prod_qty . "', '" . $prod_name . "', '" . $d . "')" 

的内容,看看什么错误。

无论哪种方式如果在构建该查询之前没有进行变量转义,则可以避免SQL注入