2016-07-23 15 views
0

こんにちは私はデータベースにフォーム情報をアップロードしようとしていますが、すべてのフィールドがアップロードされています画像ファイルを除いて画像はパスに移動しましたが、私のコード:mysqlデータベースに画像をアップロードする

$server = "localhost"; 
$username = "root"; 
$password = "root3"; 
$dbname = "sampledb"; 

// creat connection 
$connection = new mysqli($server, $username, $password, $dbname); 

// check the connection 
if ($connection->connect_error) { 
    die("connect to database failed :" . $connection->connect_error); 
} 
// check value from select menu 
if ($_POST['typelist'] == 'item') { 
    // prepare and bind parameters 
    if (isset($_FILES['item_image'])) { 
     $itemquery = $connection->prepare("insert into items(item_image, item_manufacturing_year, item_Length, item_width, item_weight, item_price, item_description, item_model) VALUES (? , ? , ? , ? , ? , ? , ? , ?)"); 
     $itemquery->bind_param("bsssssss", $image, $manufacturing_year, $length, $width, $weight, $price, $description, $model); 

     // set all parameters and execute the query 
     $image = $_FILES['item_image']['name']; 
     $temp = $_FILES['item_image']['tmp_name']; 
     $path = "../images/items/$image"; 
     move_uploaded_file($temp, $path); 
     $manufacturing_year = $_POST['manufacturing_year']; 
     $length  = $_POST['item_length']; 
     $width  = $_POST['item_width']; 
     $weight  = $_POST['item_weight']; 
     $price  = $_POST['item_price']; 
     $description = $_POST['item_description']; 
     $model  = $_POST['item_model']; 
     $itemquery->execute(); 
     $itemquery->close(); 
     $connection->close(); 
    } 
} 
+0

なぜ、 'b'を使って' bind_param'に文字列を渡すのですか? –

+0

'$ model'を定義した後、' $ itemquery-> bind_param'を行に入れてみてください。 – castis

+0

@RCあなたは間違っていると思います。 –

答えて

0

問題は、あなたがこのようにしてみてください、クエリにパラメータをバインドした後、画像の名前を設定してある。

$server = "localhost"; 
$username = "root"; 
$password = "root3"; 
$dbname = "sampledb"; 

// creat connection 
$connection = new mysqli($server, $username, $password, $dbname); 

// check the connection 
if ($connection->connect_error) 
{ 
    die("connect to database failed :" . $connection->connect_error); 
} 

// check value from select menu 
if ($_POST['typelist'] == 'item') 
{ 

    // prepare and bind parameters 
    if (isset($_FILES['item_image'])) 
    { 

    // set all parameters FIRST TO BIND ON THE QUERY 
    $image = $_FILES['item_image']['name']; // Now you have the image name 
    $temp = $_FILES['item_image']['tmp_name']; 
    $path = "../images/items/$image"; 

    move_uploaded_file($temp, $path); 

    $manufacturing_year = $_POST['manufacturing_year']; 
    $length = $_POST['item_length']; 
    $width = $_POST['item_width']; 
    $weight = $_POST['item_weight']; 
    $price = $_POST['item_price']; 
    $description = $_POST['item_description']; 
    $model = $_POST['item_model']; 

    $itemquery = $connection->prepare("insert into items(item_image, item_manufacturing_year, item_Length, item_width, item_weight, item_price, item_description, item_model) VALUES (? , ? , ? , ? , ? , ? , ? , ?)"); 
    $itemquery->bind_param("bsssssss", $image, $manufacturing_year, $length, $width, $weight, $price, $description, $model); 

    $itemquery->execute(); 
    $itemquery->close(); 
    $connection->close(); 
    } 
} 

はへのvar_dump()PHP関数を使用してみてくださいイメージ名の値が正しいかどうかを確認してください。あなたがやっていたように、おそらくイメージ名はnullに設定されていました。

関連する問題