2009-05-21 3 views
1

解決済み: ローカルサーバーにPHPスクリプトを書き、テストしました。 (何も気にせず、同じデータベースに2つの連続したSQLインサートがありますが、テーブルは異なります)。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を()チェックのジェームスのアドバイス、次の午前、私は本番サーバは、私のテストサーバーとは異なり、テーブル名に関しては、大文字と小文字を区別したことが判明し、その私のテーブル(contactDetails)の元の名前を小文字(contactdetails)に変換しました。

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

+0

エラーメッセージが表示されましたか? –

+0

また、動作しないクエリを実行した後に、 "SHOW WARNINGS"を実行してください。これは、エラーよりも重大ではない警告に関する情報を返し、メッセージを照会するまでメッセージを表示しません。 –

+6

mysqli_error()の出力も確認してください。テストサーバとプロダクションサーバは異なるマジッククォート設定を持っていますか?その他の設定? –

答えて

0

私は非常に愚かな感じが、 mysqli_errorを()チェックの ジェームスのアドバイスを次のですが、私がいることが分かりました 運用サーバーは、私の テストサーバーとは異なり、それが (するcontactDetails)を小文字に に私のテーブルの元の名前 (するcontactDetails)に変換することを、テーブル名に関しては、大文字と小文字を区別 ました。

0

プロダクション環境で権限をチェックしましたか? contactDetailsへのアクセス権を持っていることを確認しましたか?

+0

はい、申し訳ありませんが、指定する必要がありますが、許可は適切です。 – Sylverdrag

0

$ sql_contactDを画面(またはWebページ)に出力して、同じクエリをMySQLクエリブラウザで実行しようとしましたか?それはそれを正しくクローズする唯一の方法のように見えるので、自分の質問に答える

関連する問題