无法查询数据库

时间:2017-07-05 15:46:47

标签: php

<?php
	//Get Value
	$username = $_POST['user'];
	$password = $_POST['pass'];
	
	//Connet To The Server And Select Database 
	mysqli_connect("192.168.xxx.xxx", "xxx", "xxxxxxxxxxxxx");
	mysqli_select_db("xxxxx");
	
	//Query The Database For User
	$result = mysqli_query("select * from user where username = '$username' and password = '$password'")
		or die("Failed to query database ".mysqli_connect_error());
	$row = mysqli_fetch_array($result);
	if (empty($username)) {
		header('Location: fa.html');
	} elseif (empty($password)) {
		header('Location: fa.html');
	} elseif ($row['username'] == $username && $row['password'] == $password){
		header('Location: su.html');
	} else{
		header('Location: fa.html');
	}
?>
我没有编写PHP代码的经验,所以我不知道我的代码有什么问题。 我已将“mysql”替换为“mysqli”但它仍然无法正常工作。 运行“mysql_ *”并使用我的本地Window Web服务器时,它可以正常工作。 但是,当我把它放入Linux服务器时,它会出现错误消息“无法查询数据库”。

3 个答案:

答案 0 :(得分:0)

在此处添加第四个参数作为数据库名称,如

mysqli_connect("192.168.xxx.xxx", "xxx", "xxxxxxxxxxxxx", "database_name");

并删除

mysqli_select_db("xxxxx");

编写php代码的示例方式是

$link = mysqli_connect("server_name","username","password","database_name");

if(mysqli_connect_error()) {

    die("There was an error connecting to the database");

}

$query = 'yourQuery';

$result=mysqli_query($link,$query);

if ( false==$result ) {
  printf("error: %s\n", mysqli_error($link));
}

这将有效

希望有所帮助

答案 1 :(得分:0)

您需要捕获更多错误,以查看其失败的位置。现在你所知道的是它至少在mysqli_query()线上失败了,你会陷入错误。

首先,您必须确保可以实际连接到数据库服务器。 变化:

mysqli_connect("192.168.xxx.xxx", "xxx", "xxxxxxxxxxxxx");

if(!mysqli_connect("192.168.xxx.xxx", "xxx", "xxxxxxxxxx"))
{
    die("Could not connect");
}

那么你也应该在选择数据库时捕获错误。变化:

mysqli_select_db("xxxxx");

if(!mysqli_select_db("xxxx"))
{
    die("Could not select database");
}

编辑:你真的不需要删除你的IP。 192.168.1。*是C类私有地址 - 意味着无法从本地网络外部访问它。

答案 2 :(得分:0)

您需要了解更多信息,因为这些只是基础知识。您的代码在本地工作但不在远程服务器上运行的原因可能是由于您的数据库访问 - 显然它不相同。如果要在那里部署代码,则需要更改凭据和db IP以匹配远程服务器。