2009-07-15 19 views
0
$query = "UPDATE members SET userrole ='$userrole' WHERE member_id = '$member_id'"; 

時々更新されることもありますが、ときどき...構文が正しいかどうかわかりません。PHPで更新コマンドが正常に動作しない

userroleおよびmember_idには値の配列があります。更新クエリは、チェックされる複数のアイテムに対して実行されます。

mysqlの接続またはエラーに誤りがない....初めての更新は発生しませんし、その後、それはそれはすべてのデバッグについてです

+0

は、私たちが問題を引き起こしているかを決定するために、それ以上を必要としています。 – Mohamed

答えて

0

を発生します。まず、あなたを起動するためのmysqlエラーがあるかどうか確認します。

$query = "UPDATE members SET userrole ='$userrole' WHERE member_id = '$member_id'"; 
echo mysql_errno($yourmysqlconnection) . ": " . mysql_error($yourmysqlconnection) . "\n" 

その後、あなたの$のUserRoleと$ MEMBERID変数をdoublecheck。良いではない - あなたはあなたの入力をエスケープしていないビットをスキップしてきた場合を除き、 rAyt

+0

mysqlの接続やエラーにはエラーはありません....初めて更新が行われないと、それが発生します。 – Kevin

1
  1. をここにあなたの調査結果を投稿し、我々はあなたがさらに

    グッドラック支援することかもしれません! $ MEMBER_IDが配列の場合

    $userrole = mysql_real_escape_string($userrole);

  2. 、あなただけのような更新にそれを置くことはできません。 は、私が(もちろん脱出した後に!)あなたはこのような何かをしたい疑い

    $query = "UPDATE members SET userrole ='$userrole' WHERE member_id IN (" . implode(",", $member_id) . ")";

+0

これはエラーをスローします...実際には0 1 2 3のような値をカンマなしで取得しています – Kevin

+0

それらを取得している場合は、member_idは配列ではありません - var_dump($ member_id); – Greg

3

両方の変数が配列が含まれている場合、これは、動作しないことができます。

foreach ($userrole as $key => $role) { 
    $query = "UPDATE members SET userrole ='$role' 
       WHERE member_id = '$member_id[$key]'"; 
    // perform query ... 
} 

それとものみ$ MEMBER_ID場合は、配列である:

$query = "UPDATE members SET userrole ='$userrole' 
      WHERE member_id IN ('" . implode(',', $member_id) . "')"; 
// perform query ... 

あなたは(私はここでは説明しません不器用なのMySQL CASE文を、または使用)の項目を一つずつ更新する必要があります変数が配列であることを反映するように、変数の名前をさらに変更する必要があります。

$userrole => $userroles 
$member_id => $member_ids 

さらに:これらの値はHTMLフォームに由来していますか?はいの場合、you should reallymysql_escape_string()を使用して消毒します。これは、一度array_map()を使用しての複数の値のために行うことができます。

ちょうどラインである
$userroles = array_map('mysql_escape_string', $userroles); 
$member_ids = array_map('mysql_escape_string', $member_ids); 
+0

foreachが私にエラーを投げる... – Kevin

+0

どのようなエラーがありますか? var_dump($ userrole)とvar_dump($ member_id)の結果をあなたの質問に追加してください。 – soulmerge

関連する問題