与 mysqli() 的连接不起作用,为什么?
Connection with mysqli() does not work, why?
我在连接到 Microsoft Azure 中的 mysql 数据库时遇到一个奇怪的问题。当我使用此命令连接到数据库时,查询成功。
$con = mysql_connect($mysql_db_hostname, $mysql_db_user, $mysql_db_password) or die("Could not connect database");
mysql_select_db($mysql_db_database, $con) or die("Could not select database");
但是当我使用这个命令时它不起作用:
$con = new mysqli($mysql_db_hostname, $mysql_db_user, $mysql_db_password, $mysql_db_database);
if ($con->connect_error)
{
die("Database selection failed: " . $con->connect_error);
}
我没有收到消息 "Database selection failed: "。 $con->connect_error。知道为什么第一个代码有效而另一个无效吗?
我正在为此 php 代码使用连接:
<?php require_once ("/connect.php");
if(isset($_POST['username']) && !empty($_POST['username'])){
$username=mysql_real_escape_string($_POST['username']);
}else{
$message[]='Please enter username';
}
if(isset($_POST['password']) && !empty($_POST['password'])){
$password=mysql_real_escape_string($_POST['password']);
}else{
$message[]='Please enter password';
}
$countError=count($message);
if($countError > 0){
for($i=0;$i<$countError;$i++){
echo ucwords($message[$i]).'<br/><br/>';
}
}else{
$query="select * from users where username='$username' and password='$password'";
$res=mysql_query($query);
$checkUser=mysql_num_rows($res);
if($checkUser > 0){
echo 'correct';
}else{
echo ucwords('please enter correct user details');
}
}
您不能混合匹配 mysql_* 函数和 mysqli_* 函数。您要么使用所有 mysql_*(已弃用),要么使用所有 mysqli_* 函数。
显然,您更改了连接,但尚未更改,例如 mysqli_query 到 mysqli_query 等
请注意,这两个 API 之间不一定是一一对应的。换句话说,您不能只添加一个 "i" 并希望它始终有效 - 您需要考虑一些概念和句法等方面的变化。
无论如何,查看 PHP 代码中出现的每个 "mysql_" 并将其转换为使用 "mysqli_*" 函数,这应该可以解决您的问题。
我在连接到 Microsoft Azure 中的 mysql 数据库时遇到一个奇怪的问题。当我使用此命令连接到数据库时,查询成功。
$con = mysql_connect($mysql_db_hostname, $mysql_db_user, $mysql_db_password) or die("Could not connect database");
mysql_select_db($mysql_db_database, $con) or die("Could not select database");
但是当我使用这个命令时它不起作用:
$con = new mysqli($mysql_db_hostname, $mysql_db_user, $mysql_db_password, $mysql_db_database);
if ($con->connect_error)
{
die("Database selection failed: " . $con->connect_error);
}
我没有收到消息 "Database selection failed: "。 $con->connect_error。知道为什么第一个代码有效而另一个无效吗?
我正在为此 php 代码使用连接:
<?php require_once ("/connect.php");
if(isset($_POST['username']) && !empty($_POST['username'])){
$username=mysql_real_escape_string($_POST['username']);
}else{
$message[]='Please enter username';
}
if(isset($_POST['password']) && !empty($_POST['password'])){
$password=mysql_real_escape_string($_POST['password']);
}else{
$message[]='Please enter password';
}
$countError=count($message);
if($countError > 0){
for($i=0;$i<$countError;$i++){
echo ucwords($message[$i]).'<br/><br/>';
}
}else{
$query="select * from users where username='$username' and password='$password'";
$res=mysql_query($query);
$checkUser=mysql_num_rows($res);
if($checkUser > 0){
echo 'correct';
}else{
echo ucwords('please enter correct user details');
}
}
您不能混合匹配 mysql_* 函数和 mysqli_* 函数。您要么使用所有 mysql_*(已弃用),要么使用所有 mysqli_* 函数。 显然,您更改了连接,但尚未更改,例如 mysqli_query 到 mysqli_query 等
请注意,这两个 API 之间不一定是一一对应的。换句话说,您不能只添加一个 "i" 并希望它始终有效 - 您需要考虑一些概念和句法等方面的变化。
无论如何,查看 PHP 代码中出现的每个 "mysql_" 并将其转换为使用 "mysqli_*" 函数,这应该可以解决您的问题。