2011-02-02 100 views
8

你可以给我这个相当于MySQLi的代码吗?不能正确的。MySQLi等效的MySQL代码

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

编辑:护理向我解释什么是错的?

$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

你可以用一个额外的查询选择FOUND_ROWS做() – 2011-02-02 13:13:37

+3

呀。你也可以通过你的鼻子喝你的牛奶! – Mchl 2011-02-02 13:17:14

+0

@mchl - Hehehehe – t0mgs 2011-02-02 13:25:26

回答

15

那么,在OO意义上说,它会去从:

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

为(假定数字用户ID:

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

为(假设字符串用户ID):

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

为(假定准备好的发言):

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

现在,这是假设你正在使用库MySQLi的OOP版本(你应该恕我直言,因为它使生活在许多方面更容易)。

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 
} 

办法,我会做到这一点:

$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 
} 
1

我会做这种方式:

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

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