php
  • mysql
  • mysqli
  • 2011-09-26 48 views 1 likes 
    1

    我想轉換我當前的代碼,以MySQLi擴展......但我有一個問題,這個代碼..MySQL來mysqli的PHP

    $sql = "SELECT COUNT(*) FROM users WHERE username='$username'"; 
        $result = mysql_query($sql); 
        if (mysql_result($result, 0) > 0) { 
        $errors[] = 'The username is already taken.'; 
        } 
    

    什麼是「mysql_result」的mysqli的功能?我無法得到它的工作。

    我當前的mysqli代碼僅僅是連接和

    $sql = "SELECT COUNT(*) FROM users WHERE username='$username'"; 
        $result = $mysqli->query($sql); 
        if (mysql_result($result, 0) > 0) { 
        $errors[] = 'The username is already taken.'; 
        } 
    

    但我需要改變mysql_result,但無法找到庫MySQLi相反的功能。基於此線程

    +0

    您可以發佈您當前的mysqli代碼嗎? – alexn

    +1

    可能重複[MySQLi相當於mysql_result()?](http://stackoverflow.com/questions/2089590/mysqli-equivalent-of-mysql-result) – alexn

    +0

    現在編輯文件看看 – John

    回答

    3

    我通常使用對象-Y接口的MySQLi:

    <?php 
    $db = new mysqli($hostname, $username, $password, $database); 
    $result = $db->query('SQL HERE'); 
    
    // OOP style 
    $row = $result->fetch_assoc(); 
    $row = $result->fetch_array(); 
    
    while($row = $result->fetch_row()) 
    { 
        // do something with $row 
    } 
    
    // procedural style, if you prefer 
    $row = mysqli_fetch_assoc($result); 
    $row = mysqli_fetch_array($result); 
    
    while($row = mysqli_fetch_row($result)) 
    { 
        // do something with $row 
    } 
    ?> 
    

    全部結果方法列表在這裏:http://www.php.net/manual/en/class.mysqli-result.php

    +0

    我同意;這是一個更好的做事方式。 – user470714

    1

    ,有沒有這樣的等價物:

    MySQLi equivalent of mysql_result()?

    他們給一些可能的替代方案,但是。

    0

    沒有相當於mysql_result,但你可以獲取一個單排使用此行的第一個元素(因爲您的查詢返回一行一列的表格):

    $sql = "SELECT COUNT(*) FROM users WHERE username='$username'"; 
    $result = $mysqli->query($sql); 
    $arr = $result->fetch_row(); 
    if ($arr[0] > 0) { 
        $errors[] = 'The username is already taken.'; 
    } 
    
    相關問題