2016-06-01 7 views
0

私は前にmysqliを使用しています。これでmysqliを準備しました。私は、アップロード画像と、特定のデータを更新しようとしていると私はエラーmysqli_stmt_bind_result(): Number of bind variables doesn't match number of fields in prepared statement in line 30を取得する理由を私は知らないし、以下mysqli_query($conn, $query)mysqliを使ってデータベースを更新するには?

は私のUPDATEクエリのコードであるようにもどのように私はmysqliのクエリでクエリを実行することができます:

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

    $imageName = mysqli_real_escape_string($conn, $_FILES["latest_photo"]["name"]); 
    $imageData = mysqli_real_escape_string($conn, file_get_contents($_FILES["latest_photo"]["tmp_name"])); 
    $imageType = mysqli_real_escape_string($conn, $_FILES["latest_photo"]["type"]); 

     if (substr($imageType, 0,5) == "image") { 

      $query = "UPDATE `crew_info` SET `updated_photo` = ? WHERE `id` = ?"; 
      $stmt = mysqli_prepare($conn, $query); 
      mysqli_stmt_bind_param($stmt, 'ss', $imageData, $_GET['id']); 
      mysqli_stmt_execute($stmt); 
      mysqli_stmt_bind_result($stmt, $id, $updated_photo);  

      //HOW CAN I EXECUTE THE QUERY HERE? 
      echo "Image Uploaded"; 

     } 

     else { 

      echo "Image is not uploaded!"; 

     } 

} 

上記のコードでは、クエリの実行方法に関するコメント行があります。どうやってやるの?みんな

編集ありがとう:

をまた、私はボタンのアップロード]をクリックすると、画像がアップロードされていることを言いますが、データベースには表示されません。何故ですか?

+0

私の 'mysqli_stmt_bind_result()'には、そのテーブルにすべてのカラムを含めようとしました。 –

+0

あなたは結果を返さない更新ステートメントを実行しています。そのため、mysqli_stmt_bind_resultで結果にバインドできません。結果が返されるようにするには、 'SELECT crew_info、updated_photo WHERE id =? 'のような2番目のステートメントが必要です。 –

+0

mysqliの準備が新しくなった –

答えて

0
//for procedural way 
    $query = "UPDATE `crew_info` SET `updated_photo` = ? WHERE `id` = ?"; 
    $stmt = mysqli_prepare($conn, $query); 
    // you should use i instead of s for id 
    mysqli_stmt_bind_param($stmt, 'si', $imageData, $_GET['id']); 
    mysqli_stmt_execute($stmt); 

//try this out in object oriented 
    $query = "UPDATE `crew_info` SET `updated_photo` = ? WHERE `id` = ?"; 
    $stmt = mysqli_prepare($conn, $query); 
    $stmt->bind_param("si", $imageData, $id); 
    $imageData=$imageName ; 
    $id=$_GET['id']; 
    $stmt->execute(); 
+0

それはあなたのために働いていなかった場合私に教えてください –

+0

手順で行う方法? –

+0

ok私は私の答えを瞬時に変更します –

関連する問題