小赖子的英国生活和资讯

在PHP里执行SQL文件

阅读 桌面完整版

如果你有一系列的SQL语句要执行 你可以把它存成 文本文件 e.g. *.SQL 然后登陆 mysql 控制端 执行 source 把这些命令执行了. 如果没有相应的权限 而可以写一小段PHP代码 并在URL里执行.

MySQL 在PHP里执行SQL文件 I.T. PHP是最好的语言 小技巧 折腾 运维

MySQL

把数据库的帐号写在一个PHP脚本里

1
2
3
4
5
// conn.php
define('DB_HOST', 'helloacm.com');
define('DB_USER', 'DB_USER';
define('DB_PASSWORD', 'DB_PASSWORD');
define('DB_NAME', 'DB_NAME');
// conn.php
define('DB_HOST', 'helloacm.com');
define('DB_USER', 'DB_USER';
define('DB_PASSWORD', 'DB_PASSWORD');
define('DB_NAME', 'DB_NAME');

然后另一PHP就声明了一个 ExecSqlFile 函数 把给定的文件读进来每一行执行SQL语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  require('conn.php');
  mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
  mysql_query("SET NAMES utf8");
  mysql_select_db(DB_NAME);
  function ExecSqlFile($filename) {
    if (!file_exists($filename)) {
      return false;
    }
    $querys = explode("\n", file_get_contents($filename));
    foreach ($querys as $q) {
      $q = trim($q);
      if (strlen($q)) {
        mysql_query($q) or die(mysql_error());
      }      
    }
    return true;
  }
  $filename = "sql.txt";  替换
  ExecSqlFile($filename)
  require('conn.php');
  mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
  mysql_query("SET NAMES utf8");
  mysql_select_db(DB_NAME);
  function ExecSqlFile($filename) {
    if (!file_exists($filename)) {
      return false;
    }
    $querys = explode("\n", file_get_contents($filename));
    foreach ($querys as $q) {
      $q = trim($q);
      if (strlen($q)) {
        mysql_query($q) or die(mysql_error());
      }      
    }
    return true;
  }
  $filename = "sql.txt";  替换
  ExecSqlFile($filename)

然后有了这个PHP文件就可以 很方便的指定 crontab 文件用来定期定时执行.

英文: 在PHP里执行SQL文件

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version