当我将文件从网络服务器下载到我的本地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
任何帮助将不胜感激,谢谢!
编辑:我尝试手动设置$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
答案 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());
}
?>