Cum să obțineți raportul de eroare mysqli_query corect în php? [duplicat] (Programare, Php, Mysqli, Raportarea Erorilor)

Mas Bagol a intrebat.

Într-adevăr, mă înnebunește când nu pot detecta ce eroare se întâmplă. Nu mă pot descurca cu ea.

Am reușit să fac o conexiune la MySQL, și să verific cu:

$connection = mysqli_connect(HOST, USER, PASS, DB) or die('Could not connect!');
if($connection){
    echo 'It's connected!';
}

Da, care spune conectat. Apoi, când încerc o interogare, nu reușește fără să raporteze eroarea. Am încercat să fac acest lucru pentru a verifica dacă eșuează:

$query = "SELECT $field FROM users WHERE id = ".$_SESSION['user_id'];
$result = mysqli_query($dbc, $query);
if($result){
    echo 'Query OK';
}else{
    echo 'Query failed';
}

Browserul a spus: Query failed. Deci, există o eroare în interogarea mea. Apoi am făcut un ecou al interogării cu următorul lucru:

echo $query;
// Printed in the browser: SELECT firstname FROM users WHERE id = 1

Copiați această valoare și folosiți-o în phpMyAdmin. Funcționează. Deci, cred că s-a produs o eroare în mysqli_query funcție. Dar nu pot obține mesajul de eroare și deci nu știu ce se întâmplă. Am încercat acest lucru:

$result = mysqli_query($dbc, $query) or die(mysqli_error($dbc));

și asta:

if(!$result){
     echo mysqli_error($dbc);
}

Nu se întâmplă nimic. Browserul este pur și simplu gol. Apoi, am încercat să schimb acest lucru:

$result = mysqli_query($dbc, $query);

cu aceasta:

$result = mysqli_query($query);

Tot nu se întâmplă nimic. Ce se întâmplă? Cum pot să știu ce eroare s-a produs?

Execut serverul în Debian cu phpinfo(): PHP versiunea 5.4.36-0+deb7u3

Comentarii

  • Ați verificat error_reporting și display_errors setările? De asemenea, nu faci depanarea pe mașina ta, ci pe un server de la distanță? :/  > Por Andrea.
  • @Andrea Îmi pare rău, cum să verific aceste setări? Eu editez pe un server de la distanță. De fapt, îmi fac remote serverul care este instalat în VirtualBox. –  > Por Mas Bagol.
  • Ați văzut: http://stackoverflow.com/questions/845021/how-to-get-useful-error-messages-in-php? Ați activat logarea erorilor atât în serverul web cât și în PHP? Ați verificat jurnalul de erori al serverului web și jurnalul de erori al PHP-ului? –  > Por hakre.
1 răspunsuri
Peter

Băieți citiți ce au postat, se amestecă conexiunile.

$connection = mysqli_connect(HOST, USER, PASS, DB) or die('Could not connect!');

Deci, această linie ar trebui să se citească:

$result = mysqli_query($connection, $query) or die(mysqli_error($connection));

Cu mysqli_ trebuie să treceți conexiunea la o serie de lucruri care nu era necesară în mysql_

Sau puteți schimba conexiunea db originală la $dbc

 $dbc = mysqli_connect(HOST, USER, PASS, DB) or die('Could not connect!');

Sper că acest lucru vă ajută!