繁体   English   中英

PHP下载损坏/空

[英]PHP download corrupted/empty

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

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

既然上传是正确的,而且它给数据库添加了键,为什么会抱怨

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

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

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

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

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

从mysql改为mysqli,不仅仅是在mysql中增加了一个i 程序上也有一点点变化。

最好参考此链接,它对 mysqli初学者 mysqli 教程中的初学者很有用。

本教程采用 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在所有查询中保持连接

注意:这不是您上传错误的解决方案。 由于您没有以正确的方式显示您的代码,我认为这些更改可能会导致您的代码出错。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM