web-dev-qa-db-fra.com

Avoir un problème à faire exécuter mysqli_query

Voici le problème: j'ai commencé un échange aujourd'hui pour utiliser mysqli. Pas grand-chose, juste dû changer quelques déclarations. Tout s'est bien passé, pas d'erreur ... Sauf que je n'arrive pas à le faire exécuter des requêtes du tout. J'ai double et triple vérifié ma syntaxe. J'ai même commencé à créer des situations où il DEVRAIT retourner une erreur (en essayant de l'inclure à INSERT dans des tables inexistantes ou avec des valeurs dépassant les limites de la colonne ou ne correspondant pas au type) et ... rien. Il ne renvoie pas d'erreur, il n'écrit pas. Il se plaindra si le paramètre 1 n'est pas un type mysqli.

Voici le code pertinent: 

$con = mysqli_connect("localhost", "root", "","test");

if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "INSERT INTO files VALUES (NULL, 5, 'hello')";
mysqli_query($con, $query);

Et rien. Il fonctionne sans problème, mais il n’écrit jamais l’enregistrement. Je peux même changer la requête $ en "hdjhkfhhjfkd" et cela ne pose aucun problème. mysqli_query () ne s'exécute pas, point. La seule fois où je peux le faire réagir, c'est si je change de $ con en autre chose, alors il se plaint d'avoir besoin d'un type mysqli. 

Pensées? Cela me rend dingue. 

16
GilloD

Avez-vous vérifié la valeur de retour de mysqli_query ()? Il retourne FALSE si une erreur survient. Dans ce cas, mysqli_error () vous donne plus d'informations sur l'erreur.

<?php
$con = mysqli_connect("localhost", "root", "", "test");
if (mysqli_connect_errno()) {
  printf("Connect failed: %s\n", mysqli_connect_error());
  exit();
}

$query = "INSERT INTO files VALUES (NULL, 5, 'hello')";
echo "<pre>Debug: $query</pre>\m";
$result = mysqli_query($con, $query);
if ( false===$result ) {
  printf("error: %s\n", mysqli_error($con));
}
else {
  echo 'done.';
}
32
VolkerK
public function connection()
{
        $con=mysqli_connect('localhost','root','','int');
        return $con;

}
public function login($u,$p)
{
    $fd=$this->connection();
    $sql = "SELECT * FROM user WHERE (uname = '".$u."' AND pass = '".$p."')";
    $result = mysqli_query($fd,$sql);
    $num = mysqli_num_rows($result);
    if($num)
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}
0
Madhura Gimhan