php
  • mysql
  • 2011-12-09 14 views 0 likes 
    0

    私はトラブルこのクエリの作品を作ったよ:ヘッダが正しいページにリダイレクトされるようPHP/MySQLの更新クエリの問題

     
    if(isset($_POST['updateRecord'])) { 
        mysql_query("UPDATE files SET title = '$_POST[title]', description = '$_POST[description]', internal = '$_POST[accessFile]', category = '$_POST[category]' WHERE title = '$_POST[title]'"); 
        header("Location: system-management.php?viewFiles=on"); 
    } 
    

    それは間違いなくif文に入っているし。私はpostメソッドを使うためにform submitを設定しました。でも、getメソッドを使ってもフォームデータが渡されているのが分かります。次のようにフォームを送信ボタンIがクエリに報告(又はダイ)ヘッダの位置と誤差外に引用しようとしているが、それはエラー

    が現れない

    は、表の列内にある:

    <input type='submit' value='Save Changes' name='updateRecord' /> 
    

    本当に明白なことがありますか?

    本当にありがとうございます。

    +0

    mysql_query("",$con) or die(mysql_error());を追加表示し、同様にあなたのWHERE句を確認してください? – dm03514

    +1

    addまたはdie(mysql_error());その行の最後に、それが何を言うか教えてください。また、あなたのプログラムがSQLインジェクション攻撃に対する潜在的な脆弱性を認識していることを願っています。 – jakx

    +0

    こんにちは、私は私の管理パネルとすべての作品でそれを試してみました。私は実際にmysqlで再度クエリを作成しました... "ヘッダの場所を引用してエラーを報告しようとしましたが、エラーは発生しませんでした。"エラー報告はクエリの実行時にエラーを発生させません。 – user1090149

    答えて

    1

    あなたは

    mysql_query("UPDATE files SET title = '{$_POST[title]}', 
        description = '{$_POST[description]}', internal = '{$_POST[accessFile]}', 
        category = '{$_POST[category]}' WHERE title = '{$_POST[title]}'"); 
    

    中括弧は変数式を脱出するために必要な次のように中括弧を使用する必要があります。 PHP DocのStringsを参照してください。また、文字列の中カッコの使い方について詳しくは、this answer on stackoverflowを参照してください。

    0
    1. 構文を変更してください。
    2. 常にクエリを含む変数を持つことは良い考えですので、あなたが実行されている正確なクエリを確認することができ、このよう

    $query = "UPDATE files SET title = \"{$_POST['title']}\", description = \"{$_POST['description']\", internal = \"{$_POST['accessFile']\", category = \"{$_POST['category']\" WHERE title = \"{$_POST['title']\""; 
    // echo $query; 
    mysql_query($query); 
    
    +0

    こんにちは、お返事ありがとうございます!私はすべてのことを提案しようとしましたが、同じ問題を抱えています。これ以上の提案はありますか? – user1090149

    +0

    スクリプトが意図した通りに動作していることを確認するためにクエリをエコーし​​ましたか? – jap1968

    0

    IFは、働いていると仮定すると、変数が$ _POSTから読み込まれる方法に問題があるようです。変数名は引用符で囲む必要があります。これを試してください:

    mysql_query("UPDATE files SET title = '" . $_POST['title'] . "', description = '" . $_POST[description] . "', internal = '" . $_POST[accessFile] . "', category = '" . $_POST[category] . "' WHERE title = '" . $_POST[title] . "'"); 
    

    0

    送信ボタンIDをid="whatever"にしてみてください。

    mysql_query($ query、$ connection)の2番目のパラメータは表示されません。接続文字列はありません。

    エラーがあなたのクエリを取るとMySQLシェルでそれを試してみました

    関連する問題