2017-01-05 19 views
-1

は、誰もがこのコードでいただきました!間違っは、MySQL、PHPで複数のテーブルを更新する方法

$sql = " 
UPDATE graduation 
    , classxii 
    , classx 
    SET university = '$university' 
    , college ='$college' 
    , course = '$course' 
    , branch = '$branch' 
    , year = '$year' 
    , school1 = '$school1' 
    , board1 = '$board1' 
    , percentage1 = '$percentage1' 
    , year1 = '$year1' 
    , school2 = '$school2' 
    , board2 = '$board2' 
    , percentage2 = '$percentage2' 
    , `year2 = '$year2' 
    WHERE graduation.email = '$email' 
    , classxii.email = '$email' 
    , classx.email = '$email' 
"; 

エラーを私に言うことができる:あなたのSQL構文でエラーが発生しています。近くに使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください「classxii.email ='[email protected]」、classx.email ='[email protected]「」

+0

あなたは正しい、複数のテーブルを更新しようとしていますか? – jboneca

+1

準備されたステートメントではありません。準備されたステートメントを使用し、頭痛の可能性を軽減します。 –

+0

@jbonecaはい、3種類のテーブル –

答えて

2

複数の条件がANDに接続する必要がまたはOR、コンマではありません。

$sql = "UPDATE `graduation`, `classxii`, `classx` SET 
    `university`='$university',`college`='$college',`course`='$course',`branch`='$branch',`year`='$year', 
    `school1`='$school1',`board1`='$board1',`percentage1`='$percentage1',`year1`='$year1', 
    `school2`='$school2',`board2`='$board2',`percentage2`='$percentage2',`year2`='$year2' 
WHERE `graduation`.`email`='$email' AND `classxii`.`email`='$email' AND `classx`.`email`='$email'"; 

また、カラム名とテーブル名を区切る.はバッククォートの内部であってはなりません。あなたのテーブル名または列名の

いずれも予約語ではないので、あなたは、すべてのこれらすべての騒々しいバッククォートは必要ありません。

$sql = "UPDATE graduation, classxii, classx SET 
    university='$university',college='$college',course='$course',branch='$branch',year='$year', 
    school1='$school1',board1='$board1',percentage1='$percentage1',year1='$year1', 
    school2='$school2',board2='$board2',percentage2='$percentage2',year2='$year2' 
WHERE graduation.email='$email' AND classxii.email='$email' AND classx.email='$email'"; 
+0

いくつかの論理積を逃しています。この例では、そのまま使用する方法を示しています。 –

+1

@KraangPrime私はこの些細な質問のためにやりたいこと以上の仕事をしています。あなた自身の答えを投稿してください。 – Barmar

+0

十分に公正。私はSQLコードを含んでいた別の質問に用意されたステートメントにSQLインジェクションフレンドリーからコードを交換することを含む改訂版を提供しなかったために爆発した。 –

関連する問題