1

解決済み: ローカル サーバーで PHP スクリプトを作成してテストしました。(派手なことは何もありません。同じデータベースに2回連続してSQLを挿入するだけですが、テーブルは異なります)。

どちらのサーバーも PHP5 と MYSQL 5 を実行します。

ローカル サーバーでは、両方のクエリが正しく処理されます。

ライブ サーバーでは、最初のクエリのみが機能しますが、2 番目のクエリは機能しません。その理由がわかりません。

コードは次のとおりです。

    $sql_login = "INSERT INTO logintbl 
              (...) 
           VALUES (...)";
   $result_login = mysqli_query($this->connect, $sql_login);

   # Fill contact details
   $sql_contactD = "INSERT INTO contactDetails
                    (...)
         VALUES (...)";
   $result_contactD = mysqli_query($this->connect, $sql_contactD);

私のローカル サーバーでは、両方のクエリが true を返し、データがデータベースに追加されます。

私のライブ サーバーでは、最初のクエリは期待どおりに動作しますが、2 番目のクエリはエラー メッセージなしで失敗します。

もちろん、テーブル構造は両方のサーバーで同一です。両方のテーブルが同じデータベースにあり、ユーザーはデータベースに対する十分な権限を持っています。

何が間違っている可能性がありますか?


編集 1: 権限: はい、ユーザーは両方のテーブルに対して適切な権限を持っています。


編集2:私は非常にばかげていると感じていますが、mysqli_error()をチェックするJamesのアドバイスに従って、テストサーバーとは異なり、本番サーバーはテーブル名に関して大文字と小文字を区別し、私の元の名前を変換したことがわかりました表 (contactDetails) を小文字 (contactdetails) に変換します。

ご協力いただきありがとうございます。

4

3 に答える 3

0

本番環境で権限を確認しましたか? つまり、contactDetails への挿入アクセス権があることを確認しましたか?

于 2009-05-21T17:32:18.473 に答える
0

適切に閉じる唯一の方法のように見えるため、自分の質問に答えます。

私は非常にばかげているように感じますが、mysqli_error() をチェックする James のアドバイスに従って、テスト サーバーとは異なり、運用サーバーはテーブル名に関して大文字と小文字を区別し、テーブルの元の名前 (contactDetails ) を小文字に (contactdetails)。

于 2010-06-10T08:54:55.480 に答える
0

$sql_contactD を画面 (または Web ページ) に出力してから、MySQL Query Browser でまったく同じクエリを実行しようとしましたか?

于 2009-05-21T18:59:54.940 に答える