2016-09-01 9 views
0

queryの複数の行を更新しようとしていますが、動作しません。私は一つだけrowを更新しようとした場合でも、それはここに私の作業コードがあるデータベース列を追加するとクエリが機能しない

を働いている:ここで

 if(!empty($_POST['include'])) { 
      foreach($_POST['include'] as $check) { 
       echo "<input type=\"text\" name=\"master[]\" size=\"50\" value=\"$check\"> <br/>"; 

      $vessel = 'SAMMY'; 
       $query = "UPDATE `info` SET `vessel` = ? WHERE `id` = ?"; 
       $stmt = mysqli_prepare($conn, $query); 
       mysqli_stmt_bind_param($stmt, 'si', $vessel, $check); 
       mysqli_stmt_execute($stmt); 
      } 
     } 

は私の働いていないコードです:

 if(!empty($_POST['include'])) { 
      foreach($_POST['include'] as $check) { 
       echo "<input type=\"text\" name=\"master[]\" size=\"50\" value=\"$check\"> <br/>"; 

       $crew_status = 'LINEUP PENDING'; 
      $vessel = 'SAMMY'; 
       $query = "UPDATE `info` SET `vessel` = ? AND `crew_status` = ? WHERE `id` = ?"; 
       $stmt = mysqli_prepare($conn, $query); 
       mysqli_stmt_bind_param($stmt, 'ssi', $vessel, $crew_status, $check); 
       mysqli_stmt_execute($stmt); 
      } 
     } 
+1

に応じてコンマでそれらを区切る必要がありますか?エラーメッセージはありますか? – Jens

+0

エラーはありませんが、クエリが機能していません –

答えて

2

あなたにANDを使用しないでください。 SQLクエリでは、代わりに,を使用してください:

UPDATE `info` SET `vessel` = ?, `crew_status` = ? WHERE `id` = ?" 

MySQLでUpdateクエリで複数の値を設定するには、MySQLのドキュメント `working`ない意味についてUPDATE Syntax

UPDATE [LOW_PRIORITY] [IGNORE] table_reference 
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... 
    [WHERE where_condition] 
    [ORDER BY ...] 
    [LIMIT row_count] 
+0

これは機能しました。違いは何ですか? –

+0

@aronpascua私は自分の答えを更新しました。これは単にupdate文の構文です。複数の列はカンマで区切る必要があります – Daniel

関連する問題