Mysqli sorgu sadece localhost değil, web sunucusu üzerinde çalışır

1 Cevap php

Ben performansını artırmak için Mysqli çerçeveye benim eski sorguları bazı değişti. Her şey localhost üzerinde çalışıyor ama webserver yükleyin zaman hiçbir şey çıktılar. Bağlandıktan sonra ben hatalarını kontrol ve orada yok. Ben de yüklü php modülleri kontrol ve mysqli etkindir.

Ben hiçbir hata görüntülenir gibi veritabanına bir bağlantı oluşturur eminim. (I veritabanı adı dize değişti zaman hata verdi)

Bu gibi görünüyor webserver üzerinde sorgudan hiçbir çıkış yoktur:

$mysqli = new mysqli("server", "user", "password");

if (mysqli_connect_errno()) {
   printf("Can't connect Errorcode: %s\n", mysqli_connect_error());
   exit;
}

// Query used  
$query = "SELECT name FROM users WHERE id = ?";

if ($stmt = $mysqli->prepare("$query")) 
{

    // Specify parameters to replace '?'
    $stmt->bind_param("d", $id);  

    $stmt->execute();

    // bind variables to prepared statement 
    $stmt->bind_result($_userName);

    while ($stmt->fetch()) 
    {
          echo $_userName;
    }


    $stmt->close();
 }
}

//close connection 
$mysqli->close(); 

Ben bu kod sadece online değil benim LocalServer mükemmel çalışır söylediğim gibi. Hata günlüklerini kontrol ve hiçbir şey iyi bir bağlantı yüzden her şeyi puan var. Bu bana sıkışmış çünkü tüm masalar vb gibi herhangi bir fikirleri herkes var! Ben bu çalışma almak Ayrıca, eğer, bütün diğer sorguları çalışmaya devam edecek? Ya da ben onları da mysqli çerçeve kullanmak yapmak gerekir? Şimdiden teşekkürler.

EDIT:

Tamam Ive neler olduğunu görmek için bazı 'ayıklamayı' bitti. Veriler Ben sorgusuna sorgulama ediyorum tabloda var. Ben hazırlamak deyimi denetlemek için aşağıdakileri etmedi:

echo "debug 1";

if ($stmt = $mysqli->prepare("$shiftQuery"))  
{

echo "debug 2";
printf("Error: %s.\n", $stmt->error);

etc...
}

Yani temelde gerektiği çıkışı (öyle) statment hazırlanmadan önce 'hata ayıklama 1'. Sonra çıktı 'ayıklama 2' olmalı ve herhangi bir hata oluştu sonra.

Bu IF deyiminde hata ayıklama 2 satır bulmuyor gibi sorun burada bir yerde. Bağlantı ayrıntıları ince olduğundan $ mysqli nesne oluşturulur neden cekti, ben gerçekten göremiyorum. O kimseye başka fikir verir??

teşekkürler

1 Cevap

MySQL kullanıcı izni konak hassastır - diğer host localhost ve user1 farklı izni user1 verebilir.

GRANT ALL ON *.* TO user@'%' IDENTIFIED BY 'password';