PHP无法选择数据库

时间:2014-02-23 06:42:59

标签: php html mysql

当我将文件从网络服务器下载到我的本地xampp时,我收到了这个奇怪的错误。

我有这样的db.php

<?php
if(!isset($_SESSION)) 
{
    session_start();
}
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = $_SESSION['company'];
$db = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die(mysql_error()."Could not connect DATABASE");
mysql_select_db($mysql_database) or die(mysql_error()."Could not select DATABASE");
?>

我有reference-report.php喜欢这个

 <?php 

    include 'db.php';

  ?>


<head>
<link rel="stylesheet" type="text/css" href="../css/buttons.css">

<style type="text/css">

img{
    display:block;
    margin:auto;
}
//some other html code.....

当我运行文件reference-report.php时,我得到的输出为Could not select database

有一点需要注意的是,在文件db.php中,die命令有database写在uppercase中。显示的输出中database写有lowercase

文件reference-report.php不包含任何mysql连接代码。 我的网站结构中只有一个db.php。两个php文件都在同一个目录中。

我无法找出导致此错误的原因。

reference-report.php http://pastebin.com/QbpvMin4

的pastebin

任何帮助将不胜感激,谢谢!

编辑:我尝试手动设置$mysql_database的值,但仍然存在同样的问题。除此之外,依赖于db.php的其他文件正常工作。

还在die命令中添加了mysql_error(),但输出保持不变。也许db.php没有被收录?

编辑2:db.php的内容添加到reference-report.php,即现在它独立于db.php

现在reference-report.php看起来像这样:

<?php 

session_start();
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "valid_db_name";
$db = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die(mysql_error()."Could not connect DATABASE");
mysql_select_db($mysql_database) or die(mysql_error()."Could not select DATABASE");

?>

<head>
<link rel="stylesheet" type="text/css" href="../css/buttons.css">

<style type="text/css">

img{
//some other html code......

输出情况仍然保持不变。现在这是* *

中的一些好痛苦

解决方案这就像是我最令人沮丧和最愚蠢的错误。该网址为websitename.com/php/filename.,应该是localhost/php/filename

2 个答案:

答案 0 :(得分:0)

如果您尝试将$mysql_database更改为数据库的实际名称以进行快速测试,该怎么办?

我猜测$_SESSION['company']没有正确设置,值得检查其中的内容并确保它确实是一个有效的数据库名称。

答案 1 :(得分:0)

尝试使用pdo:     

define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASS", "");
define("DB_NAME", "titoni");

try{
    $db = new \PDO(   'mysql:host='.DB_HOST.'; dbname='.DB_NAME, DB_USER, DB_PASS, 
                        array(
                            \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, 
                            \PDO::ATTR_PERSISTENT => false,
                            \PDO::ATTR_EMULATE_PREPARES => false,
                            \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
                        )
                    );

}
catch(\PDOException $ex){
    print($ex->getMessage());
}


?>