将Mysql转换为Mysqli

问题描述:

我被告知停止使用MySQL并且现在正在学习MySQLi。然而,我遇到了一个问题,使用读取数组,并不知道我做错了什么。将Mysql转换为Mysqli

//Connect to db 
include "mysqli_connect.php"; 

// Construct our join query 
$sql = "SELECT userID, username, lastlogin FROM users"; 

//Crate results 
$result = mysqli_query($link, $sql); 

// Print out the contents of each row into a table 
$row = mysqli_fetch_array($result, MYSQLI_BOTH); 

// Free result set 
mysqli_free_result($result); 

// Close connection 
mysqli_close($link); 


消息我看到:通过 TCP/IP
  • 警告db413417616.db.1and1.com:mysqli_query()[function.mysqli

    • [连接成功]主机信息 - 查询]:无法取得 mysqli在/homepages/9/d413002686/htdocs/maintenance/testsession.php on line 9
    • 警告:mysqli_fetch_array()期望参数ER 1是 mysqli_result,在 /homepages/9/d413002686/htdocs/maintenance/testsession.php空给定在线路12
    • 警告:mysqli_free_result()预计参数1是 mysqli_result,在 /主页空给出/9/d413002686/htdocs/maintenance/testsession.php on line 15
    • 警告:mysqli_close()[function.mysqli-close]:无法获取 mysqli在/ homepages/9/d413002686/htdocs/maintenance/testsession .php on line 18()

    我用这个为mysqli_connect.php:http://www.php.net/manual/en/mysqli.construct.php

    <?php 
    // $link (host, username, password, database) 
    $link = mysqli_connect('host', 'username', 'password', 'database'); 
    
    //If connection is successful, otherwise show error message. 
    if (!$link) { 
        die('[Connect Fail] Error: (' . mysqli_connect_errno() . ') ' 
          . mysqli_connect_error()); 
    } 
    // Echo success message 
    echo '[Connection Successful] Host info: ' . mysqli_get_host_info($link) . "\n"; 
    
    // Close the link 
    mysqli_close($link); 
    ?> 
    
  • +1

    你看到一个错误,或者是'$ row'而不是你认为它应该是什么?你能显示mysqli_connect.php的内容吗(删除了凭证)? – grossvogel

    +1

    您尚未针对查询失败进行测试。 'if(!$ result)echo mysqli_error();' –

    +1

    +1做正确的事情:) – vascowhite

    这条线在你的包含文件应该被删除:

    // Close the link 
    mysqli_close($link); 
    

    您要关闭$link,又名您连接到数据库,然后尝试在查询中使用它。您只需在完成所有工作后关闭它。

    +1

    谢谢!我很熟悉手册。 – taeja87