2016-08-20 87 views
0

所以我有一个PHP脚本的服务器。在顶部,我连接到数据库PHP删除数据库连接

mysql_connect("localhost", "root", "mypassword") or die("Could not connect: " . mysql_error()); 
mysql_select_db("mydatabase"); 

我知道,这些功能已被弃用,但我将不得不改变,以解决这个问题是对未来的问题,太多的PHP文件。

我这样做在文件的顶部,然后经过一些HTML代码和更多的PHP代码,再往下我尝试从数据库中获取,像这样一些信息:

$result = mysql_query("SELECT Id, Name FROM people"); 

while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
     printf("ID: %s Name: %s", $row[0], $row[1]); 
    } 
mysql_free_result($result); 

现在我不明白任何输出。但是,如果我在尝试从中提取此信息之前连接到数据库,它确实工作正常。为了澄清,如果我把连接代码放在这个代码上面。

感谢

+0

所以。当您尝试运行代码时会发生什么?你有没有尝试检查错误?数据库连接是否仍然打开?函数中的代码是什么? – andrewsi

+0

没有输出。我有更进一步的阅读,在php.ini文件发生一些变化后,我现在没有默认的数据库。我不关闭任何地方的连接,代码不在函数内。 – Thomja

+0

不使用'mysql' – Tonza

回答

2

保存“连接”到一个变量,使一个链接变量,并使用它作为您的查询参数。

$link = mysql_connect("localhost", "root", "mypassword") 

然后,后来用它喜欢:

$result = mysql_query('SELECT * from XYZ',$link); 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
} 
+0

这并没有解决,但提供了一个很好的线索。 无效查询:访问拒绝用户'www-data'@'localhost'(使用密码:否) 是什么错误输出。但是,这真的很奇怪,因为我通过命令行连接到数据库时使用相同的用户名和密码作为数据库,所以sudo mysql -hlocalhost -uroot -ppassword 但我觉得奇怪不工作(注意添加的空格): sudo mysql -h localhost -u root -p password 此外,错误表示用户是“www-data”......它不是,用户名是根。 – Thomja

+0

这可能会有所帮助: http://stackoverflow.com/questions/7671346/access-denied-for-user-www-datalocalhost-how-to-deal-with-that –

+0

我阅读并编辑我的php.ini文件并更改了默认的用户名和密码。但是我不能设置默认数据库,所以现在页面只返回一个错误,表示没有选择数据库。 – Thomja