2017-03-17 6 views
0

基本的にいくつかのフィールドを持つページであるPhP、JavaScript、HTML、AJAX、CSS、MySQLi、SQLを使用するファイルが1つあります。 AJAXを使用してページをリフレッシュせずに接続を行うデータベースmysqli_queryに不正な値(AJAXを使用)があるとスローされない目に見えないエラー

or die()でエラーを表示させることはできませんが、すべて動作しています。私はmy_table(...)の値のうちの1つを変更することでそれをテストしました。エラーメッセージがないので、情報はデータベースに送信されませんが、ユーザーにはイデアがありません。どうすればエラーを投げることができますか?

私には間違っていることはありませんが、私はAJAXがページや何かをリフレッシュしないと賭けなければなりません。私はいくつかの質問を見てきましたが、私は彼らがこれを正確に説明していると確信していますが、jQueryは常に私を混乱させます。私はこの単純なコードを使用している場合は、それが正常に動作

:状況をよりよく説明すること

<?php 
    if(isset($_POST["name"]) && !empty($_POST["name"])) { 
    $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db"); 
    mysqli_set_charset($link, "utf8"); 
    // code 
    mysqli_query($link, "INSERT INTO my_table(...)values(...)") or die(mysqli_error($link)); 
    mysqli_close($link); 
    exit; 
    } 
?> 
<html> 
    <head> 
    <meta charset="UTF-8"> 
    <script> 
     function AJAX() { 
     // code 
     var xhttp = new XMLHttpRequest(); 
     xhttp.open('POST', 'my_file.php', true); 
     xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
     xhttp.send(...); 
     } 
    </script> 
    </head> 
    </body> 
    <!-- code --> 
    <button onclick="AJAX()">Send</button> 
    </body> 
</html> 

編集:

はここで非重要なものを減らすためにいくつかの変更と私のコードです

<?php 
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db"); 

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 
mysqli_query($link,"INSERT INTO my_table(Name) VALUES ('Bob')") or die(mysqli_error($link)); 
mysqli_close($link); 
?> 

しかし、たとえばmy_tableを、存在しない間違った名前に変更すると、文書に書き込まれますTable 'my_db.wrong_table_name' doesn't exist。私のファイルの中には何も書いていない/表示していない/全くスローしていないと思っています。

+0

ページを更新したい場合は、AJAXを使用しないでください。同様に、AJAXを使用して同じページ内のコードにpingを実行すると、間違いのタイムベンダーになります。そして、ここにはjQueryはありません。 –

+0

これは実際にはひどい考えです。 [mysqliまたは死ぬ、それは死ぬ必要がありますか?](http://stackoverflow.com/questions/15318368/mysqli-or-die-does-it-have-to-die) –

+0

[あなただけのユーザーではないあなたのサイト](https://phpdelusions.net/programming) –

答えて

0

これは、エラーを警告する必要があります。

 var xhttp = new XMLHttpRequest(); 
     xhttp.addEventListener("error", function(event) { 
      alert('an error occured'); 
     }); 
     xhttp.open('POST', 'my_file.php', true); 
     xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
     xhttp.send(...); 

あなたはイベントリスナーに関するすべての情報をここに見つけることができます:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest

は、このエラーイベントは唯一のネットワーク障害に解雇されていることを、覚えておいてください。異なるhttpコードを扱う必要がある場合は、ここに良い例があります:XMLHttpRequest (Ajax) Error

+0

私はまだ何の誤りもありません。 – user7393973

+0

あなたはこれを読んだことがありますか? http://stackoverflow.com/questions/8866761/xmlhttprequest-ajax-error – Oliver

関連する問題