【问题标题】:Establish connection to a database建立与数据库的连接
【发布时间】:2016-07-08 04:27:46
【问题描述】:

我最近使用 Ubuntu 14.0 桌面在 Oracle VM VirtualBox 中安装了 LAMP 服务器,因此我可以了解 PHP 与 MySQL 数据库的交互。

我无法与我的数据库建立连接。即使我使用了错误的用户名,它也不会给出任何错误消息。我知道我已经正确设置了 LAMP,因为我在 localhost 上运行了其他 PHP 文件。

这是我的脚本:

<?php 
function conexao() {
$db = 'webservice';
$user = 'xxxxx';
$pass = 'xxxxx';
$host = 'localhost';
$conn = mysql_connect($host,$user,$pass);
mysql_select_db($db);   
}
conexao();
?>

我应该在我的连接信息错误时收到一条消息,对吗?好吧,什么都没有发生,就像每个信息都正常时一样。

【问题讨论】:

  • 您使用的是 PHP 版本 7 吗?您应该使用 mysqlipdo 任何一种方式,但在 PHP 7 中,mysql_ 函数消失了。您检查了错误日志还是只检查了生成的页面?
  • @chris85 我是这个主题的新手。没有看到任何日志,所以我只是观察人们在做什么并试图重现它,这不太有效......
  • error_reporting(-1); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); 添加到脚本的开头。不确定您的错误日志位于何处,但您的 PHP 版本可以从php.net/manual/en/function.phpinfo.php 获得。
  • 当连接失败时你应该得到一个错误(并且你启用了完整的错误报告)。但是,如果一切正常,您将什么也得不到,因为您的脚本在连接后实际上并没有做任何事情。
  • 好的,如果它确实解决了问题,请不要忘记接受该答案。无论如何,Mysqli 是更好的方法。

标签: php mysql mysql-connect


【解决方案1】:
function conexao() { 
$db = 'webservice'; 
$user = 'xxxxx';
$pass = 'xxxxx';
$host = 'localhost';

$conn = mysql_connect($host,$user,$pass);
if(!$conn){ 
$retval = 'Could not Connect' . mysql_error(); 
}
else if(!mysql_select_db($db)){ 
$retval = 'Could not select db' . mysql_error(); 
}
else{ 
$retval = 'Success'; 
}

return $retval;
} // end of function 

现在在您的函数调用过程中相应地返回。 *** mysql 已弃用,请改用 mysqli 或 PDO。

}

【讨论】:

  • 是的,尽管我们收到了返回消息,但由于某种原因,它并没有真正起作用......仍然有一个空白页作为响应。
【解决方案2】:

你可以试试这个我用来连接数据库的脚本

<?php
define("HOST", "localhost"); // The host you want to connect to.
define("USER", "username"); // The database username.
define("PASSWORD", "password"); // The database password. 
define("DATABASE", "webservice"); // The database name.

date_default_timezone_set('Europe/Stockholm');

$con = mysqli_connect(HOST, USER, PASSWORD, DATABASE);

if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error() . "\n";
}
mysqli_set_charset($con, "utf8");
?>

如果这不起作用,则可能是您调用脚本的请求出错。

【讨论】:

  • 感谢您的快速回答。我尝试了这个脚本,这次当我故意输入错误的密码时,它给了我一个错误,所以我假设它正在工作?现在需要做一些测试来访问该数据库中的一些数据。
猜你喜欢
  • 1970-01-01
  • 2016-12-15
  • 2018-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多