SQL sorgusu test sunucusu üzerinde çalışır ama yaşamak değil ...

3 Cevap php

SOLVED: I wrote and tested a PHP script on the local server. (Nothing fancy, just 2 consecutive SQL inserts in the same database, but different tables).

Hem sunucuları çalıştırmak PHP5 & MYSQL 5.

Yerel sunucu üzerinde hem sorguları doğru işlenir.

Canlı sunucu, sadece ilk sorgu çalışır, ancak ikinci ve ben nedenini anlamaya olamaz.

İşte kod:

    $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);

Benim yerel sunucuda, hem sorguları doğru dönün ve veri veritabanına eklendi.

Beklendiği gibi benim canlı sunucuda, ilk sorgu çalışır, ancak ikinci sorgu herhangi bir hata iletisi başarısız olur.

Tabii ki, tablo yapılar hem sunucularda aynıdır. Her iki tablo aynı veritabanında bulunan ve kullanıcı veritabanı üzerinde yeterli haklara sahiptir.

Yanlış ne olabilir herhangi bir ipucu?


Edit 1: İzinler: Evet, kullanıcı hem masalarda yeterli izinlere sahiptir.


2 Edit: Ben çok saçma bir duygu ama mysqli_error kontrol James'in tavsiyesi () takip ediyorum, ben üretim sunucusu bunun orijinal adını dönüştürülen benim test sunucusuna aksine, VE bu, tablo adları açısından harf duyarlı olduğunu öğrendim benim (contactdetails) küçük harfe tablosu (contactDetails).

Yardımlarınız için herkese teşekkürler.

3 Cevap

Düzgün kapatmak için tek yol gibi görünüyor çünkü benim kendi soru cevaplama:

I am feeling very silly, but following James' advice of checking mysqli_error(), I found out that the production server was case sensitive in regards to table names, unlike my testing server, AND that it converted the original name of my table (contactDetails) to lowercase (contactdetails).

Eğer Üretim ortamında izinleri kontrol ettiniz? Anlamı Eğer contactDetails insert erişimi olduğunu doğruladıktan?

Eğer bir ekran (veya web) için $ sql_contactD yazdırın ve ardından MySQL Query Browser aynı sorguyu çalıştırmayı denedin mi?