2011-02-02 32 views
8

Bạn có thể cho tôi mã tương đương với mã này không? Không thể làm đúng.MySQLi Tương đương với Mã MySQL

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

EDIT: Chăm sóc để giải thích cho tôi những gì là sai?

$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

Bạn có thể làm gì với chọn FOUND_ROWS thêm một truy vấn() –

+3

Yeah. Bạn cũng có thể uống sữa qua mũi của bạn! – Mchl

+0

@mchl - Hehehehe – t0mgs

Trả lời

15

Vâng, trong một cảm giác OO, nó sẽ đi từ:

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

Để (giả sử số userid):

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

Để (giả sử chuỗi userid):

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

Để (giả chuẩn bị phát biểu):

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

Bây giờ, đó là giả sử bạn đang sử dụng phiên bản OOP của MySQLi (mà bạn nên được, IMHO, vì nó làm cho cuộc sống dễ dàng hơn theo nhiều cách).

+0

Hoàn toàn đồng ý về điều đó. – Mchl

+0

bạn đã quên điều gì đó –

+0

Oh trở lại của đại tá. Miss ya. – 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 
} 

Way tôi muốn làm điều đó:

$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

Không GO Bạn bè của tôi. Đã thử nó trước khi hỏi :) – t0mgs

+0

@WideBlade: Vậy tại sao bạn không nêu trong câu hỏi? –

+0

Sau đó, phải có cái gì đó sai, nhưng bạn cho chúng ta thấy quá ít thông tin. Bạn có nhận được thông báo lỗi nào không? Kết nối $ có thực sự là tài nguyên liên kết mysqli không? – Mchl

1

tôi sẽ làm điều đó theo cách này:

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

if ($row['userid'] > 0) { 
    echo "<h1>AWESOME</h1>"; 
} 
Các vấn đề liên quan