php
  • mysql
  • mysqli
  • 2011-09-26 47 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.'; 
    } 
    
    相关问题