*.sql
创建新的网站数据库时,我有两个文件。第一个文件创建所有表。第二个文件填充一些默认记录。我想从PHP执行这些文件。我还将使用Zend_Framework,如果这将有助于完成此任务。
附加信息
解
使用shell_exec()
…
$command = 'mysql'
. ' --host=' . $vals['db_host']
. ' --user=' . $vals['db_user']
. ' --password=' . $vals['db_pass']
. ' --database=' . $vals['db_name']
. ' --execute="SOURCE ' . $script_path
;
$output1 = shell_exec($command . '/site_db.sql"');
$output2 = shell_exec($command . '/site_structure.sql"');
…我从来没有得到过有用的输出,但是在另一个线程上遵循了一些建议,最终使它们全部正常工作。我将命令切换为格式,而不是用来执行文件。--option=value``--execute="SOURCE ..."``<
另外,我从来没有得到的区别的一个很好的解释shell_exec()
和exec()
。
这个问题不时出现。没有直接从PHP运行.sql脚本的好的解决方案。在某些情况下,.sql脚本中常见的语句不能作为SQL语句执行。例如,MySQL的工具已经内置命令不是由MySQL服务器的认可,例如CONNECT
,TEE
,STATUS
,和DELIMITER
。
所以我给+1 @Ignacio Vazquez-
Abrams的答案。您应该通过调用mysql
工具在PHP中运行.sql脚本,例如使用shell_exec()
。
我得到了这个测试的工作:
$command = "mysql --user={$vals['db_user']} --password='{$vals['db_pass']}' "
. "-h {$vals['db_host']} -D {$vals['db_name']} < {$script_path}";
$output = shell_exec($command . '/shellexec.sql');
另请参阅我对以下相关问题的回答:
我对Linux很陌生,仍在努力适应自己。我的工作环境设置得很好,安装了XAMPP、node、sublime等。但当我尝试运行laravel应用程序时,第一件让我抓狂的事情是我无法运行php。 我很困惑,因为我已经安装了XAMPP(我以为会为我完成这一切),但后来我只是在我的 /usr/bin中创建了一个符号链接到 /opt/lampp/bin/php,一切都很好(我不确定这是否都是正确的,但它工作
问题内容: 我有一个巨大的(〜500mb)SQL文件,需要在我的数据库上运行。这是来自生产数据库的数据转储,我需要将其放入开发数据库中。通常,如果它较小,则将其粘贴到“ SQL”选项卡中并运行它,但这肯定会炸毁我的浏览器。 如果我将该SQL文件导入开发数据库,就像运行SQL文件一样?还是将导入功能专门设置为 导入整个 数据库? 问题答案: 您应该尝试从控制台导入它,因此您不必依赖文件上传限制:
问题内容: 我正在使用angular在wordpress网站中创建页面过渡。我的网站加载了一个普通的wordpress页面,该页面触发了PHP,并在页面中填充了有角元素(正文)。然后,角度元素使用动画过渡以3个单独的html页面更改正文内容(因此页眉和页脚不受影响。) 我在单独的html页面中有PHP。我以为PHP会在每个页面进入视图之前触发-但是我猜是因为页面是由angular而不是浏览器加载的
问题内容: (重要)编辑3: 单独运行testajax2.php而 不是 Ajax。持续时间大致相同,为1.02-1.03秒。所以我想这意味着问题出在PHP- MySQL或XAMPP中? 当我通过phpMyAdmin查询运行它时,结果如下:显示第0-29行(总计约50行。查询耗时 0.0015秒 )。看来问题根本不在于Ajax,而可能在于PHP。我怎样才能解决这个问题?(我也刚刚编辑了问题标题。)
Navicat 让你使用 转储 SQL 文件 和 运行 SQL 文件 功能还原你的数据库或模式或表。 要备份数据库或模式或表,在上右击并从弹出菜单选择 转储 SQL 文件 -> 结构和数据 或 僅结构。要还原数据库或模式或表或运行 SQL 文件,右击并从弹出菜单选择 运行 SQL 文件。 提示:你可以拖曳一个 .sql 文件到表的对象列表窗格或到连接窗格的表或模式。Navicat 将弹现 运行 S
问题内容: 我正在尝试通过PHP代码导入.sql文件。但是,我的代码显示此错误: 这是我的代码: 我究竟做错了什么?SQL文件位于同一目录中。 问题答案: 警告: 自PHP 5.5.0起,扩展名已弃用,自PHP 7.0.0起,扩展名已删除。相反,应使用mysqli或PDO_MySQL扩展名。另请参见MySQL API概述, 以获取选择MySQL API时的更多帮助。 只要有可能,应将文件导入MyS