-1

2段階の登録があります。1つはメールのユーザー名やパスワードなどの重要なデータを使用し、もう1つはバイオや目の色などの個人情報を使用するオプションの登録です。これらの2つのexecファイルがあり、最初のofcがデータを書き込みます。データベースの最初の部分で、30列の個人データを空白のままにします。2番目の行は別の行を実行しますが、重要なデータは空になっています。これら2つの行を追加または結合したいので、すべての情報が1つの行にあります。

これが2つ目です

 $qry = "UPDATE `performers` SET `Bemutatkozas` = '$bemuatkozas', `Feldob` = '$feldob', `Lehangol` = '$lehangol', `Szorzet` = '$szorzet', `Jatekszerek` = '$jatek', `Kukkolas` = '$kukkolas', `Flort` ='$flort', `Szeretek` = '$szeretek', `Utalok` = '$utalok', `Fantaziak` = '$fantaziak', `Titkosvagyak` = '$titkos_vagyak, `Suly` = '$suly', `Magassag` = '$magassag', `Szemszin` = '$szemszin', `Hajszin` = '$hajszin', `Hajhossz` = '$hajhossz', `Mellboseg` ='$mellboseg', `Orarend` = '$orarend', `Beallitottsag` = '$szexualis_beallitottsag', `Pozicio` = '$pozicio', `Dohanyzas` = '$cigi', `Testekszer` = '$pc', `Tetovalas` ='$tetko', `Szilikon` ='$szilikon', `Fetish1` = '$pisiszex', `Fetish2` = '$kakiszex', `Fetish3` = '$domina', `Testekszerhely` = '$pchely', `Tetovalashely` = '$tetkohely', `Csillagjegy` = '$csillagjegy', `Parral` = '$par', `Virag` = '$virag' WHERE `Username` ='" .  $_POST['username']. "'";
$result = @mysql_query($qry);


//Check whether the query was successful or not
if($result) {
    header("location: perf_register_success.php");
    exit();

$_POSTがここで機能するかどうかはわかりません。私はフォームを持っており、次にそのフォームのexecが機能し、次にこのフォームがあり、これがそのexecです。とにかく私は常に「queryfailed」メッセージを受け取ります。これは「if」iのelseステートメントにあります。使用しています。私は何が間違っているのですか?ありがとう!

4

2 に答える 2

1

2番目のクエリUPDATEの代わりに必要です。INSERT

それとは別に、できればプリペアドステートメントと組み合わせてPDOまたはmysqliに切り替えることにより、SQLインジェクションエラーを修正する必要があります。mysql_*関数は非推奨になりました。

そして、どのような解決策をとる場合でも、適切なエラー処理を追加する必要があります。特に問題を修正しようとする場合、エラーの抑制は間違っていますが、実稼働サイトでも、エラーを無視するのではなく、ログに記録する必要があります。

于 2012-07-13T00:41:33.117 に答える
1

UPDATEの正しい構文は次のとおりです。

UPDATE table SET columnA=valueA, columnB=valueB WHERE condition=value

ここにドキュメント

したがって、クエリは次のようになります。

$qry = "UPDATE performers SET Bemutatkozas = $bemuatkozas, Feldob = $feldob, Lehangol = $lehangol [...] WHERE Username ='" .  $_POST['username']. "'

[...]をすべての値に置き換える必要があります(これにはしばらく時間がかかります)が、うまくいけばパターンが得られます。

それ以外にも、コードで改善/変更する必要のあることがいくつかありますが、彼がほとんどすべてをカバーしているので、この質問でjeroenの答えを紹介します。

于 2012-07-13T01:07:22.767 に答える