2010-02-25 2 views
0

Je rencontre des problèmes avec mysqli pour exécuter un script avec les requêtes SELECT, DELETE, INSERT et UPDATE. Ils fonctionnent en utilisant la norme mysql, comme mysql_connect mais en obtenant des résultats étranges en utilisant mysqli. Cela fonctionne très bien avec beaucoup de requêtes SELECT dans d'autres scripts, mais quand il s'agit de certaines tâches d'administration, ça gâche.Pourquoi un script n'aimerait-il pas utiliser MySQLi mais va bien avec MySQL?

Son difficile à expliquer sans attacher le script entier.

Ceci est la fonction de modification ...


function database_queryModify($sql,&$insertId) 
    { 
    global $databaseServer; 
    global $databaseName; 
    global $databaseUsername; 
    global $databasePassword; 
    global $databaseDebugMode; 

    $link = @mysql_connect($databaseServer,$databaseUsername,$databasePassword); 

    @mysql_select_db($databaseName,$link); 

    $result = mysql_query($sql,$link); 

    if (!$result && $databaseDebugMode) 
    { 
     print "[".$sql."][".mysql_error()."]"; 
    } 

    $insertId = mysql_insert_id(); 

    return mysql_affected_rows(); 
    }

et voici ce que je l'ai changé pour mysqli


function database_queryModify($sql,&$insertId) 
    { 
    global $databaseServer; 
    global $databaseName; 
    global $dbUser_feedadmin; 
    global $dbUser_feedadmin_pw; 
    global $databaseDebugMode; 

    $link = @mysqli_connect($databaseServer,$dbUser_feedadmin,$dbUser_feedadmin_pw,$databaseName); 
    $result = mysqli_query($link, $sql); 

    if (!$result && $databaseDebugMode) 
    { 
     print "[".$sql."][".mysqli_error()."]"; 
    } 
    $insertId = mysqli_insert_id(); 
    return mysqli_affected_rows(); 
    } 

Est-ce correct?

Il ne produit pas d'erreur mais il ne fonctionne pas de la même manière que lorsque vous utilisez mysql. des idées?

Répondre

0

certaines des fonctions de Mysqli bricoler un peu comme nécessaires comme incluant lien $

0

Voici la façon dont je l'utilise normalement Mysqli

$mysqli = new mysqli($myServer, $myUser, $myPass, $myDB); 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit; 
} 
$result = $mysqli->query($query); 

while ($row=$result->fetch_assoc()) { 
    print_r($row); 
} 

Note: mysqli est une classe, mysqli $ est la variable qui détient l'instance de cette classe, la requête est une méthode de cette classe qui renvoie un résultat classe qui a ses propres méthodes.

0

Vous exécutez toutes les instructions à la fois en ce qui concerne php, donc les fonctions telles que les lignes affectées ou le dernier identifiant inséré ne fonctionneront pas comme prévu. (corrigez-moi si je me trompe, je ne l'ai pas été en utilisant mysqli pendant un certain temps.)

Questions connexes