首页 >PHP讨论组 >在自定义函数里面,为什么不能使用$mysqli->query?

在自定义函数里面,为什么不能使用$mysqli->query?在自定义函数里面,为什么不能使用$mysqli->query?

MCXCI}8`AS6FQ6ZJ7TUW)%H.png

 
1
 
+1
-1
 
分享
全部回复 (1)我来回答
    Peter_Zhu
    1楼
    Peter_Zhu · 2个月前

    你的使用有问题呀~~

    $mysqli->query()使用的前提是:你创建了$mysqli对象,不知你在dbconfigs.php文件中有没有创建这个对象?

    还有,你在下面又用了mysqli_fetch_array()这是典型的面向对程的语句,实在不明白,你究竟想怎么调用数据?

    如果你想使用面向对象,请这样使用:

    $mysqli = new mysqli($host,$userName,$password,$dbName);
    if ($mysqli->connect_errno){
        die('Error Connected'.$mysqli->connect_error;
    }
    $result = $mysqli->query('SELECT * FROM table_name');
    if ($result && $result->num_rows > 0){
    while($row = $result->fetch_array(MYSQLI_ASSOC)){
       //输出数据
     }
     $result->free_result();
    }
    $mysqli->close();

    如果是面向过程,请将以上代码修改一下:

    $conn = mysqli_connect($host,$userName,$password,$dbName);
    if (mysqli_connect_errno($conn)){
        die('Error Connected'.mysqli_connect_error($conn);
    }
    $result = mysqli_query('SELECT * FROM table_name');
    if ($result && mysqli_num_rows($conn,$result) > 0){
    while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){
       //输出数据
     }
     mysqli_free($result);
    }
    mysqli_close($conn);

    请不要将面向对象和面向过程混用。

    PHP中文网有针对这二部分的教程:

    http://www.php.cn/course/653.html (MySQLi面向对象)

    http://www.php.cn/course/653.html (MySQLi面向过程)

      赞+1添加回复

    回复

    $mysqli=new mysqli("localhost","root","root","perform_file") or die("链接数据库失败"); $mysqli->query("set names utf8"); //这就是dbconfigs.php里面的配置 mysqli_fetch_array //这不是把查询出来的结果集通过数组循环出来吗?

    别闹i 作者 · 2个月前
    回复

    mysqli_fetch_array()是将结果集逐条的转为数组输出,包括索引与关联

    Peter Zhu 回复 别闹i · 2个月前
    回复

    请问dbconfigs.php里面的配置有问题吗?

    别闹i 作者  回复 Peter Zhu · 2个月前
    首页上一页1下一页尾页