2011-09-26 4 views
1

Je suis en train de convertir mon code actuel à l'extension MySQLi ... Mais j'ai un problème avec ce code ..Mysql à Mysqli php

$sql = "SELECT COUNT(*) FROM users WHERE username='$username'"; 
    $result = mysql_query($sql); 
    if (mysql_result($result, 0) > 0) { 
    $errors[] = 'The username is already taken.'; 
    } 

Quelle est la fonction mysqli de "mysql_result"? Je ne peux pas le faire fonctionner.

Mon code actuel mysqli est juste la connexion et

$sql = "SELECT COUNT(*) FROM users WHERE username='$username'"; 
    $result = $mysqli->query($sql); 
    if (mysql_result($result, 0) > 0) { 
    $errors[] = 'The username is already taken.'; 
    } 

Mais je dois changer le mysql_result, mais ne trouve pas la fonction inverse dans MySQLi ..

+0

Pouvez-vous publier votre code mysqli actuel? – alexn

+1

duplication possible de [équivalent MySQLi de mysql_result()?] (Http://stackoverflow.com/questions/2089590/mysqli-equivalent-of-mysql-result) – alexn

+0

a modifié le fichier maintenant jeter un oeil – John

Répondre

3

J'utilise habituellement l'interface objet-y à MySQLi:

<?php 
$db = new mysqli($hostname, $username, $password, $database); 
$result = $db->query('SQL HERE'); 

// OOP style 
$row = $result->fetch_assoc(); 
$row = $result->fetch_array(); 

while($row = $result->fetch_row()) 
{ 
    // do something with $row 
} 

// procedural style, if you prefer 
$row = mysqli_fetch_assoc($result); 
$row = mysqli_fetch_array($result); 

while($row = mysqli_fetch_row($result)) 
{ 
    // do something with $row 
} 
?> 

Liste complète des méthodes de résultats est ici: http://www.php.net/manual/en/class.mysqli-result.php

+0

Je suis d'accord; C'est une meilleure façon de faire les choses. – user470714

0

Il n'y a pas d'équivalent à mysql_result, mais vous pouvez chercher une seule rangée et utilisez le premier élément de cette ligne (car votre requête renvoie un tableau d'une ligne et d'une colonne):

$sql = "SELECT COUNT(*) FROM users WHERE username='$username'"; 
$result = $mysqli->query($sql); 
$arr = $result->fetch_row(); 
if ($arr[0] > 0) { 
    $errors[] = 'The username is already taken.'; 
}