Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php函数导入.sql文件_Php_Mysql_Database_Xampp - Fatal编程技术网

如何使用php函数导入.sql文件

如何使用php函数导入.sql文件,php,mysql,database,xampp,Php,Mysql,Database,Xampp,我使用的是Xampp服务器,我试图将一个表导入到我的数据库中,但该表不起作用。这是我的密码: $mysqlDatabaseName ='postcodes'; $mysqlUserName ='root'; $mysqlPassword =''; $mysqlHostName ='localhost'; $mysqlImportFilename ='http://localhost/import_tbl/postcode_withLatlang.sql'; $command='mysql -h

我使用的是Xampp服务器,我试图将一个表导入到我的数据库中,但该表不起作用。这是我的密码:

$mysqlDatabaseName ='postcodes';
$mysqlUserName ='root';
$mysqlPassword ='';
$mysqlHostName ='localhost';
$mysqlImportFilename ='http://localhost/import_tbl/postcode_withLatlang.sql';

$command='mysql -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' < ' .$mysqlImportFilename;

//var_dump( file_exists('postcode_withLatlang.sql') );

$output = array();

 exec($command, $output, $worked);
print_r($output);
echo $worked;

// test whether they are imported successfully or not
switch ($worked) {
 case 0:
        echo 'Import file <b>' .$mysqlImportFilename .'</b> successfully imported to database <b>' .$mysqlDatabaseName .'</b>';
        break;
    case 1:
        echo 'There was an error during import. Please make sure the import file is saved in the same folder as this script and check your values:<br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr><tr><td>MySQL Import Filename:</td><td><b>' .$mysqlImportFilename .'</b></td></tr></table>';
        break;
 }
$mysqlDatabaseName='postcodes';
$mysqlUserName='root';
$mysqlPassword='';
$mysqlHostName='localhost';
$mysqlImportFilename='0http://localhost/import_tbl/postcode_withLatlang.sql';
$command='mysql-h'.$mysqlHostName'.-u'.$mysqlUserName'.-p'.$mysqlPassword'.$mysqlDatabaseName'.<'.$mysqlImportFilename;
//var_dump(文件_存在('postcode_withLatlang.sql');
$output=array();
exec($command,$output,$worked);
打印(输出);
我工作过;
//测试它们是否成功导入
交换机(已工作){
案例0:
回显“导入文件”。$mysqlImportFilename。已成功导入数据库“$mysqlDatabaseName”;
打破
案例1:
echo“导入过程中出错。请确保导入文件保存在与此脚本相同的文件夹中,并检查您的值:

MySQL数据库名称:'。$mysqlDatabaseName。'MySQL用户名:'。$mysqlUserName。'MySQL密码:NOTSHOWNMySQL主机名:'。$mysqlHostName。'MySQL导入文件名:'。$mysqlImportFilename'; 打破 }

请帮助我

您需要更改
$mysqlImportFilename=http://localhost/import_tbl/postcode_withLatlang.sql';
$mysqlImportFilename='postcode_with latlang.sql',然后将您的php脚本文件放入带有.sql文件的文件夹中,并从该文件夹中运行它。

它现在可以工作了!
首先,它在本地服务器上不起作用,其次,我使用了system()函数,而不是exec()函数,最后,它在我的数据库中生成了一个表。谢谢大家

非常确定您不能使用远程地址进行导入。。因此,请尝试删除
http://localhost
并修复它,使其成为相对/绝对路径。我已从文件名中删除,但仍然无法工作。可能有一些问题,您确定路径正确吗?如果导出该数据库时存在DROP TABLE,您是否添加了DROP TABLE,否则它将在导入时停止。它不会显示或生成任何内容…只是旋转而不是按enter键并出现在此处,您可以尝试调试代码、添加日志记录、异常处理、错误处理,带着真实的信息回到这里。它没有显示或生成任何东西…只是旋转