Php 使用db连接时我的文件已损坏

Php 使用db连接时我的文件已损坏,php,mysql,Php,Mysql,我有一个下载脚本,它可以获取文件的id并在数据库中搜索并找到它的名称。但是,当我包含我的数据库连接时,文件在下载时会损坏。 当我评论我的数据库连接并手动给出文件名时,文件下载工作正常。 我测试了我的db连接,没有任何EXCPITION或任何html输出,你认为我的问题是什么 <?php session_start(); try{ $db= new PDO("mysql:host=localhost;dbname=dbname","user","pass"); $db->se

我有一个下载脚本,它可以获取文件的id并在数据库中搜索并找到它的名称。但是,当我包含我的数据库连接时,文件在下载时会损坏。 当我评论我的数据库连接并手动给出文件名时,文件下载工作正常。 我测试了我的db连接,没有任何EXCPITION或任何html输出,你认为我的问题是什么

 <?php
session_start();
try{
  $db= new PDO("mysql:host=localhost;dbname=dbname","user","pass");
  $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $db->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );
  $db->exec("SET NAMES 'utf8'");
}catch (Exception $e){
 //echo "something wrong in db.php";
 echo $e->getMessage();
 exit;
}
?>

试试这个代码。

error_reporting(E_ALL);
ini_set('display_errors','1'); 
   $dsn = 'mysql:dbname=testdb;host=127.0.0.1';
    $user = 'dbuser';
    $password = 'dbpass';

    try {
        $dbh = new PDO($dsn, $user, $password);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }

它将返回您的错误。

经过几天的挣扎和头痛,最终通过删除try-catch块解决了问题

-然后告诉我们您的错误,阅读文档。@KDOT仍然没有任何例外。这不是告诉您此文件中没有问题吗?打开错误报告并用错误和导致错误的代码更新您的问题error@KDOT我的日志文件中没有关于连接的任何错误。我的数据库查询也提供了数据,但我不知道为什么它是损坏的文件。正如你所知,这种腐败应该是输出某些东西的结果。这是在文件中添加意外字符,例如txt文件。我可以问你,为什么在任何测试之前都要进行下一票。没问题。。你试过我的密码吗这不是你的错。。stackoverflow上的一些人不知道游戏规则stackoverflow@peyman我已经查过你的密码了。。而且它工作得很好。。你能在你的服务器上检查一下php.ini中是否加载了mysql扩展。什么扩展名是kumar?正如我在db连接工作之前所说的,我可以查询,但我不明白为什么包括我的db连接文件,我下载的文件会损坏
error_reporting(E_ALL);
ini_set('display_errors','1'); 
   $dsn = 'mysql:dbname=testdb;host=127.0.0.1';
    $user = 'dbuser';
    $password = 'dbpass';

    try {
        $dbh = new PDO($dsn, $user, $password);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }