2011-02-02 16 views
8

¿Puede darme el equivalente de este código en MySQLi? No puedo hacerlo bienMySQLi Equivalente del código MySQL

<?php 
if(mysql_num_rows(mysql_query("SELECT userid FROM users WHERE userid = '$userid'"))){ 
//code to be exectued if user exists 
} 
?> 

EDIT: Care me explique lo que está mal?

$mysqli = new mysqli($host, $username, $pass, $db); 

if ($mysqli->connect_error) { 
    die('The Server Is Busy. Please Try Again Later.'); 
} 
$result = $mysqli->query("SELECT userid FROM users WHERE userid = '$userid'"); 
if ($result->num_rows) { 
    echo "<h1>AWESOME</h1>"; 
} 
+0

se puede hacer con una consulta extra seleccione FOUND_ROWS() Sí –

+3

. ¡También puedes beber tu leche por la nariz! – Mchl

+0

@mchl - Hehehehe – t0mgs

Respuesta

15

Bueno, en un sentido OO, que iría desde:

if(mysql_num_rows(mysql_query("SELECT userid FROM users WHERE userid = '$userid'"))){ 
    //code to be exectued if user exists 
} 

A (suponiendo numérica ID de usuario):

$result = $mysqli->query("SELECT userid FROM users WHERE userid = ".(int) $userid); 
if ($result->num_rows) { 
    //code 
} 

A (suponiendo ID de usuario cadena):

$result = $mysqli->query("SELECT userid FROM users WHERE userid = '". $db->real_escape_string($userid) . "'); 
if ($result->num_rows) { 
    //code 
} 

A (suponiendo declaraciones preparadas):

$stmt = $mysqli->prepare("SELECT userid FROM users WHERE userid = ?"); 
$stmt->bind_param('s', $userid); 
$stmt->execute(); 
$stmt->store_result(); 
if ($stmt->num_rows) { 
    //code 
} 

Ahora, eso es suponiendo que está utilizando la versión de programación orientada a objetos de MySQLi (que debe ser, en mi humilde opinión, ya que hace la vida más fácil de muchas maneras).

+0

Totalmente de acuerdo en eso. – Mchl

+0

Olvidaste algo –

+0

Oh regreso del coronel. Te extrañé. – t0mgs

0
$connection = mysqli_connect(...); 

if(mysqli_num_rows(mysqli_query($connection,"SELECT userid FROM users WHERE userid = '$userid'"))){ 
//code to be exectued if user exists 
} 

manera que lo haría:

$connection = mysqli_connect(...); 

$result = mysqli_query(
    $connection, 
    "SELECT COUNT(*) AS cnt FROM users WHERE userid = '$userid'" 
) or die(mysqli_error()); //use proper error handling here: or die() used for brevity 

$row = mysqli_fetch_assoc($result); 

if($row['cnt'] > 0) { 
    //do your thing 
} 
+0

No GO My Friend. Intenté antes de preguntar :) – t0mgs

+0

@WideBlade: ¿Entonces por qué no lo mencionó en la pregunta? –

+0

Entonces debe haber algo más mal, pero nos muestra muy poca información. ¿Recibe usted algún mensaje de error? ¿La conexión $ es realmente un recurso de enlace mysqli? – Mchl

1

lo haría de esta manera:

$result = $mysqli->query("SELECT userid FROM users WHERE userid = '$userid'"); 
$row = mysqli_fetch_assoc($result); 

if ($row['userid'] > 0) { 
    echo "<h1>AWESOME</h1>"; 
}