$con=@mysqli_connect("localhost","user","999999","test");//这样写哪里错了?为什么报错?
$sql= "SELECT * from table";
$result=$con->query($sql);
$name=mysql_field_name($result, 0);
echo $name;//为什么上面会报错,下面的写法可以,要怎么用上面的$con=@mysqli_connect("localhost","user","999999","test")这种连接数据库方式正确的输出来echo $name;?
//这样写可以,
$con = mysql_connect("localhost", "user", "999999");
$db_selected = mysql_select_db("test",$con);
$sql = "SELECT * from talbe";
$result = mysql_query($sql,$con);
$name = mysql_field_name($result, 0);
echo $name;

解决方案 »

  1.   

    报什么错误?打开mysqli扩展了么?
    extension =php_mysqli.dll
      

  2.   


    Warning: mysql_field_name(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\lis.php on line 183//$con=@mysqli_connect("localhost","user","999999","test");//link.php
    require_once "link.php";
    $sql= "SELECT * from table";
    $result=$con->query($sql);
    $name=mysql_field_name($result, 0);//这是第183行
    echo $name;extension =php_mysqli.dll//这是打开mysqli扩展吗?这个代码要放在哪里?我的文件都没加这个代码,怎么其他在同一个文件下都可以mysqli的语句?
    如:$sql="select count(*) as total from tt";
    $res=$conn->query($sql);
    $result=$res->fetch_array();
    echo $result['total'];//类似这样的都能正常运行。
      

  3.   


    $con=@mysqli_connect("localhost","user","999999","test");//这样写哪里错了?为什么报错?
    $sql= "SELECT * from table";
    $result=$con->query($sql);这里不一致。看到了么?如果用mysqli_connect()这种过程的链接方式,后面的查询就要用$result=mysqli_query($sql);
    如果前面的代码改成对象的连接方式,例如
    $con=new  mysqli("localhost","user","999999","test");
    后面的查询才能用$result=$con->query($sql);这种对象式的查询。
    也就是前后要一致
      

  4.   

    补充一下:
      你的mysqli扩展是打开的,否则提示信息就不是那样的,而是undefine function mysqli_connect()这种。
      之所以会出现你一楼这样的错误提示,是因为连接方式与查询方式不一致。也就是前面得到的数据库连接句柄与后面的查询方式不一致。
      

  5.   


    $sql="select count(*) as total from tt";
    $res=$conn->query($sql);//同一个文件下的这个可以……
    $result=$res->fetch_array();
    echo $result['total'];//类似这样的都能正常运行。//$con=@mysqli_connect("localhost","user","999999","test");//link.php
    require_once "link.php";
    $sql= "SELECT * from tt";
    $result=mysqli_query($sql);//改成这样也不行
    $name=mysql_field_name($result, 0);
    echo $name;再把上面改过来,改link.php也报错。
    $con=new mysqli("localhost","root","123456","test");//改这里也不行
      

  6.   

    看了下,mysql_field_name这个貌似是针对msyql_connect( )连接的。不知道对于mysqli_connect( )是否通用。
      

  7.   


    $link = mysql_connect('localhost', 'user', '999999'); 
    $fields=mysql_list_fields("test", "tt",$link);
    echo mysql_field_name($fields, 0);//这样重新连接一下可以输出
    $con = mysql_connect("localhost", "user", "999999");//或者这样重新连接一下也可以输出
    $db_selected = mysql_select_db("test",$con);
    $sql = "SELECT * from tt";
    $result = mysql_query($sql,$con);
    $name = mysql_field_name($result, 0);
    echo $name;
      

  8.   

    可以把连接的代码写到一个文件中,然后其他需要连接数据库的地方都引入这个文件。像这样:connect.php:
    <?php
    $host ='localhost';
    $user ='test';
    $pass = '****';
    $dbname = 'dbname';
    $conn = mysql_connect($host,$user,$pass,$dbname);
    ?>如果不是长连接的话,每次执行完脚本都会释放连接的。下次执行脚本碰到查询的情况,还是要连接的.
      

  9.   

    我现在已是把连接的代码写到一个文件中,
    是这样写的;
    $con=@mysqli_connect("localhost","user","999999","test");//link.php
    我其他 连接数据库的地方都引入这个文件,关键是文件中的代码都是用的mysqli扩展。
    类似$con->query($sql);

    $strb="SELECT * FROM lis";
    $resb=$conn->query($strb);
    $cols=mysqli_num_fields($resb); //类似这样的很多
    echo $cols;
    现在把外部连接文件改成你说的这种
    $conn = mysql_connect($host,$user,$pass,$dbname);
    我的文件类似上面的代码mysqli扩展还要不要改?会不会不能正常运行?
      

  10.   


    只要是mysqli的函数,都可以正常运行。mysql_field_name这个好像不可以,是mysql_query的结果。