相关疑难解决方法(0)

从PHP中加载.sql文件

我正在为我正在开发的应用程序创建一个安装脚本,需要在PHP中动态创建数据库.我已经有了它来创建数据库,但现在我需要加载几个.sql文件.我曾打算一次打开文件和mysql_query一行 - 直到我查看模式文件并意识到它们不是每行一个查询.

那么,我如何从PHP中加载一个sql文件(如phpMyAdmin的import命令)?

php mysql sql import scripting

65
推荐指数
9
解决办法
13万
查看次数

在PHP中运行MySQL*.sql文件

*.sql在创建新的网站数据库时使用了两个文件.第一个文件创建所有表.第二个文件填充一些默认记录.我想从PHP执行这些文件.我也使用Zend_Framework,如果这将有助于实现这一目标.

附加信息

  1. 我没有控制台访问权限
  2. 我正在尝试从我们的应用程序中自动生成网站.

使用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"');
Run Code Online (Sandbox Code Playgroud)

...我从来没有得到有用的输出,但在另一个线程上遵循一些建议,最后让它全部工作.我切换到命令的格式,而不是执行文件.--option=value--execute="SOURCE ..."<

此外,我从来没有得到shell_exec()和和之间的差异的良好解释exec().

php mysql scripting zend-framework

46
推荐指数
6
解决办法
9万
查看次数

是否可以从另一个sql脚本中的存储过程调用sql脚本?

我想用.从存储过程中调用sql脚本就像这样...

delimiter ///
create procedure append_procedure()
BEGIN
\. test.sql;    
END; ///
delimiter ;
Run Code Online (Sandbox Code Playgroud)

我得到了"未能打开'test.sql;' "我以这种方式运行时出错.我也试过了!但后来我得到了一个拒绝许可的错误.但是,我无法消除; 或者整件事都破了.有没有解决的办法?

我究竟做错了什么?

mysql scripting stored-procedures

8
推荐指数
1
解决办法
5189
查看次数

使用PHP创建多个MySQL表

我试图使用PHP创建多个MySQL表,但它给出了错误,我无法理清它有什么问题.

PHP代码:

$sql = ' CREATE TABLE IF NOT EXISTS `mod_reminder_entries` 
  ( 
   `id`          INT(10) NOT NULL auto_increment, 
   `user_id`     INT(10) NOT NULL, 
   `entry_name`  VARCHAR(255) NOT NULL, 
   `entry_value` INT(10) NOT NULL, 
   PRIMARY KEY (`id`), 
   FOREIGN KEY (`user_id`) REFERENCES tblclients (`id`) 
 ); 

 CREATE TABLE IF NOT EXISTS `second_table` 
  ( 
   `user_id`     INT(10) NOT NULL, 
   `fieldstotal` INT(10) NOT NULL, 
   FOREIGN KEY (`user_id`) REFERENCES tblclients (`id`) 
  ); ';

  mysql_query($sql);
Run Code Online (Sandbox Code Playgroud)

它给出了错误,除了不用担心mysql连接.我正确地连接数据库,我已经测试过它,语法肯定有些不对劲.

您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在'CREATE TABLE IF NOT EXISTS second_table(user_idINT

php mysql

6
推荐指数
1
解决办法
8383
查看次数

相当于"SELECT*FROM(SELECT table_name FROM ...)"的东西?

此查询运行,但它会生成表的名称,而不是从该表中实际选择.

SELECT T.* 
  FROM (SELECT tablename 
          FROM ListOfTables 
         WHERE id = 0) AS T
Run Code Online (Sandbox Code Playgroud)

在ListOfTables包含的地方id=0, tablename='some_table',我想返回相同的结果集,就好像我直接写了一样:

SELECT * FROM some_table
Run Code Online (Sandbox Code Playgroud)

在MySQL 5中是否有以本机方式执行此操作,或者我是否必须在应用程序中执行此操作?

mysql sql mysql5 dynamic-sql

3
推荐指数
1
解决办法
2751
查看次数

通过php导入sql

这可能是显而易见的,但我已经通过phpmyadmin将数据库导出到.sql文件.我试图通过PHP脚本将文件导入另一个数据库,但我无法弄清楚如何做到这一点.我确信这很容易,因为我可以通过phpmyadmin运行查询轻松完成同样的事情.有什么建议?

php mysql import

1
推荐指数
1
解决办法
1万
查看次数