尝试使用以下代码连接到localhost-sql-db(此时不执行任何查询,只希望执行查询):
<?php
$host = "localhost";
$port = 3306;
$socket = "";
$user = "root";
$password = "Password1";
$dbname = "CIIP_WIKI";
$con = new mysqli($host, $user, $password, $dbname, $port);
if(!$con)
{
echo ("db connection failed!");
die ('Could not connect to the database server' . mysqli_connect_error());
}
else {
echo ("db connection established.");
echo ("<br/>");
}
$query = sprintf("SELECT first_name FROM actor WHERE actor_id='1'");
$result = mysql_query($query);
$con->close();
?>
我不断收到以下信息。。。
Welcome
db connection established.
Warning: mysql_query(): Access denied for user ''@'localhost' (using password: NO) in C:'Program Files (x86)'EasyPHP-12.1'www'Cisco Wiki'index.php on line 31
Warning: mysql_query(): A link to the server could not be established in C:'Program Files (x86)'EasyPHP-12.1'www'Cisco Wiki'index.php on line 31
为什么这不起作用?
这是因为您使用mysqli_
创建连接,然后使用mysql_
尝试获取结果。它们是不同的API。
<?php
/* You should enable error reporting for mysqli before attempting to make a connection */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
/* Set the desired charset after establishing a connection */
mysqli_set_charset($mysqli, 'utf8mb4');
printf("Success... %s'n", mysqli_get_host_info($mysqli));
示例取自PHP手册
当您尝试在没有有效连接对象的情况下执行查询时,将记录此警告。
在您的案例中,认为有一个有效的连接对象可用,但您使用mysqli创建了它,而您的查询是使用mysql执行的。这是两个不同的API,因此mysql_query函数正在寻找mysql连接对象,但没有找到