2011-02-02 103 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>"; 
}