繁体   English   中英

mysqli_query返回对象不是资源

[英]mysqli_query return object not resource

如果有人不能提示我如何使用mysqli_query返回资源而不是对象,我将不胜感激,因为每当我将它与mysqli_field_name或mysql_fetch_row一起使用时,它都会向我返回此错误“ mysql_field_name()期望参数1为资源,给定对象”而且请注意,您对mysqli方法并不十分熟悉。将提供一些帮助。以下是我的代码,以获取完整的详细信息。

<?php
    $dns="mysql:dbname=name";
    $username="name";
    $password="";



    $con = new mysqli('localhost', 'root', '', 'oysg');


    $export=mysqli_query($con,"SELECT * FROM applicant");
    $header = '';
    $data ='';
    // $export = $stmt;

    // extract the field names for header 
    $fields = 25;

    for ( $i = 0; $i < $fields; $i++ )
    {
        $header .= mysql_field_name( $export , $i ) . "\t";
        echo $header;
    }
    echo '<br>';
    echo '<br>';
    // foreach ( $fields2 as $headers )
    // {
    //     $header .=  $headers. "\t";
    //     echo $header;
    // }

    // export data 
    while( $row = mysql_fetch_row( $export ) )
    {
        $line = '';
        foreach( $row as $value )
        {                                            
            if ( ( !isset( $value ) ) || ( $value == "" ) )
            {
                $value = "\t";
            }
            else
            {
                $value = str_replace( '"' , '""' , $value );
                $value = '"' . $value . '"' . "\t";
            }
            $line .= $value;
        }
        $data .= trim( $line ) . "\n";
    }

    $data = str_replace( "\r" , "" , $data );

    if ( $data == "" )
    {
        $data = "\nNo Record(s) Found!\n";                        
    }

    // allow exported file to download forcefully
    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=export.xml");
    header("Pragma: no-cache");
    header("Expires: 0");
    print "$header\n$data";
    ?> 

提前致谢

您正在将OOP和过程混合在一起。

您在编写时正在使用OOP:

$con = new mysqli('localhost', 'root', '', 'oysg');

$con现在是具有成员属性和方法的mysqli实例。

但是,使用如下语法:

$export=mysqli_query($con,"SELECT * FROM applicant")

不是OOP的处事方式。 使用任何mysqli_*函数都意味着$con是以下结果:

$con = mysqli_connect('localhost', 'root', '', 'oysg');

如果您想坚持使用OOP,我相信您正在使用以下等效的mysqli_query

$export = $con->query("SELECT * FROM applicant");

其中$export现在mysqli_result的实例

使用OOP样式还应该有助于扩展混搭,例如mysqli_querymysql_fetch_name ,后者缺少mysqlii

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM