Home  >  Article  >  Backend Development  >  备份数据库代码在本地有效,上传到服务器就无效,咋回事?

备份数据库代码在本地有效,上传到服务器就无效,咋回事?

WBOY
WBOYOriginal
2016-06-13 12:10:54778browse

备份数据库代码在本地有效,上传到服务器就无效,怎么回事??
很奇怪,为什么在本地测试时,下面的代码可以用,但是上传到服务器就无效了?????
// 备份数据库
require('includes/config.php');
// 这里的账号、密码、名称都是从页面传过来的
$user_id = isset($_REQUEST['id']) ? intval(trim($_REQUEST['id'])) : 1;
if (!mysql_connect($db_host, $db_user, $db_pass)) // 连接mysql数据库
{
    echo '数据库连接失败,请核对后再试';
    exit;

if (!mysql_select_db($db_name)) // 是否存在该数据库
{
    echo '不存在数据库:' . $db_name . ',请核对后再试';
    exit;

mysql_query("set names 'utf8'");
$mysql = "set names utf8;\r\n";
$q1 = mysql_query("show tables");
while ($t = mysql_fetch_array($q1))
{
    $table = $t[0];
    $q2 = mysql_query("show create table `$table`");
    $sql = mysql_fetch_array($q2);
    $mysql .= $sql['Create Table'] . ";\r\n";
    $q3 = mysql_query("select * from `$table`");
    while ($data = mysql_fetch_assoc($q3))
    {
        $keys = array_keys($data);
        $keys = array_map('addslashes', $keys);
        $keys = join('`,`', $keys);
        $keys = "`" . $keys . "`";
        $vals = array_values($data);
        $vals = array_map('addslashes', $vals);
        $vals = join("','", $vals);
        $vals = "'" . $vals . "'";
        $mysql .= "insert into `$table`($keys) values($vals);\r\n";
    }
}
 
$filename = $db_name . "_" . date('Y-m-d',time()) . ".sql"; //存放路径,默认存放到项目最外层
$file="my_sql/".$filename;
$fp = fopen((dirname(__FILE__))."\\"."my_sql\\".$filename, 'w');
fputs($fp, $mysql);

if (file_exists($file))
{
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
}

fclose($fp);
?>
------解决思路----------------------
没有提示,可能是没有打开错误显示
你可以在每步结束的地方主动地输出点什么,基本就可判断出问题出在哪了

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn