PHP下载损坏/空

时间:2014-12-01 13:52:46

标签: php download

我的代码上传文件,将唯一密钥插入SQL数据库,然后返回下载链接。我读到我应该使用mysqli而不是mysql,所以我改变了,并认为我已经设置,1-2周没有任何编码,现在当我尝试打开下载的文件时,它们已损坏或为空。

包含“test”的.txt返回了此代码http://pastebin.com/NPiw0bve。 然后我注意到我仍然有一些mysql扩展,所以我很快将其更改为mysqli,现在这个错误消失了,所有.txt文件都是空的。

由于上传是正确的,并且它向数据库添加了密钥,为什么会抱怨

database problem Access denied for user ''@'localhost' (using password: NO)

2 个答案:

答案 0 :(得分:0)

您的数据库链接已损坏。 访问被拒绝fpr用户''意思是,你没有将用户名传递给数据库连接。确保您的连接已经建立并准备就绪。

$connection = mysqli_connect($host,$user[,$pass[,$db]]);

然后检查$ connection是否是一个ressource和一个有效的sql链接。如果它无效,大多数mysqli函数返回false或"" (没有 - 空字符串)这就是为什么你的下载是空的。

mysqli-functions与mysql不同,请查看手册以了解您的所有需求并编辑代码。

答案 1 :(得分:0)

从mysql更改为mysqli不仅仅是向mysql添加 i 的更改。程序也有一点变化。

最好参考这个链接,这对mysqli Beginners mysqli tutorial中的初学者很有用。

本教程采用Oops风格,如果您遵循程序风格,则不要使用本教程。但是你肯定会得到一些关于mysqli的想法。

例如程序编码风格:

mysql连接中使用的示例代码

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";

// Create connection
mysql_connect($servername, $username, $password);
mysql_select_db($dbname);
// we use seperate line for mysql connection and db selection. 
?>

,查询将类似于mysql_query("select * from tablename");

mysqli连接中使用的示例代码

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// We use single line for db selection and mysql connection.
?>

,查询就像mysqli_query($conn, "select * from tablename"); 在这里,我们使用 $ conn

在所有查询中保持连接

注意:这不是您上传错误的解决方案。因为你没有以正确的方式显示你的代码我假设这些改变可能导致你的代码错误。