将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
- [连接成功]主机信息 - 查询]:无法取得 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);
?>
答
这条线在你的包含文件应该被删除:
// Close the link
mysqli_close($link);
您要关闭$link
,又名您连接到数据库,然后尝试在查询中使用它。您只需在完成所有工作后关闭它。
+1
谢谢!我很熟悉手册。 – taeja87
你看到一个错误,或者是'$ row'而不是你认为它应该是什么?你能显示mysqli_connect.php的内容吗(删除了凭证)? – grossvogel
您尚未针对查询失败进行测试。 'if(!$ result)echo mysqli_error();' –
+1做正确的事情:) – vascowhite