2014-06-26 3 views
0

У меня проблема переключения с MySQL на MySQLi. Я пробовал использовать следующий код с помощью MySQL, и он отлично работает. Когда я переключаюсь на MySQLi, он возвращает нулевое значение.MySQL to MySQLi (get num_rows)

MySQL (работает отлично)

public function Login_User($username, $password) 
{ 
    $md5_password = md5($password); 
    $query = mysql_query("SELECT uid FROM users WHERE username='$username' and password='$md5_password'"); 
    if(mysql_num_rows($query) == 1) 
    { 
     $row=mysql_fetch_array($query); 
     return $row['uid']; 
    } 
} 

MySQLi (В $ NumRows равна нулю)

public function Login_User($username, $password) 
{ 
    $md5_password = md5($password); 
    $query = mysqli_query($connection, "SELECT uid FROM users WHERE username='$username' and password='$md5_password'"); 
    $numrows = mysqli_num_rows($query); 
    echo "username: " . $username . ", Password: " . $password . "<br/>"; 
    echo "rows: " . $numrows; 
    if($numrows == 1) 
    { 
     $row = mysqli_fetch_array($query, MYSQLI_ASSOC); 
     return $row['uid']; 
    } 
} 

Подключение к базе данных (MySQL)

$dbc = @mysql_connect ('localhost','root','') 
    or die ('Could not connect to MySQL: ' . mysql_error()); 

mysql_select_db ('socialhouse') 
    or die ('problems with selecting database: ' . mysql_error()); 

Database Connection (MySQLi)

$connection = mysqli_connect('localhost', 'root', '', 'socialhouse'); 

if (mysqli_connect_errno()) { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
exit();} 

Кто-нибудь знает, что не так с моим кодом MySQLi? Заранее спасибо

+1

'$ connnection' выходит за рамки вашей функции – andrewsi

+0

Просто установил его. Я добавил $ connection в «Login_User ($ username, $ password, $ connection)». Спасибо – shieldcy

ответ

1

Поскольку вы должны передать переменную в свой скрипт с расширением MySQLi, теперь вы пытаетесь получить доступ к этой переменной, которая выходит за рамки вашей функции. Передайте это как аргумент в вашу функцию, и вы должны быть добрым.

+0

Вы правы. Спасибо за вашу помощь – shieldcy

-2

Это основная идея:

 $mysqli = new mysqli(.......); 
     $stmt = $mysqli->prepare("SELECT ..."); 
     $stmt->bind_param('isi..', ...); 
     $stmt->execute(); 
     $stmt->store_result(); 
     $numrows=$stmt->num_rows; 
     print "query returned " . $numrows; 
+0

Я исправил проблему без необходимости ее включения. Но все равно спасибо – shieldcy

Смежные вопросы