gpt4 book ai didi

php - 使用 PHP/PDO 将 SQL 脚本运行到 PostgreSQL

转载 作者:行者123 更新时间:2023-11-29 13:02:18 24 4
gpt4 key购买 nike

我需要对我的数据库运行一些 SQL 脚本,以更新模式和数据(某种迁移)。

因为在运行每个脚本之前要检查一些逻辑,我正在编写一个小的 PHP 工具来执行脚本,但我有一个简单的问题:我可以加载并执行一个“简单的”SQL 脚本(包括表操作) 、触发器和存储过程更新),还是应该在脚本中添加标记(以标记每个句子结束的位置),然后逐句运行脚本?

对于数据库访问,我使用的是 PDO。

最佳答案

我今天遇到了类似的情况。

我的解决方案非常简单,但足够智能以允许跨越多行的注释和语句。

// open script file

$scriptfile = fopen($script_path, "r");
if (!$scriptfile) { die("ERROR: Couldn't open {$scriptfile}.\n"); }

// grab each line of file, skipping comments and blank lines

$script = '';
while (($line = fgets($scriptfile)) !== false) {
$line = trim($line);
if(preg_match("/^#|^--|^$/", $line)){ continue; }
$script .= $line;
}

// explode script by semicolon and run each statement

$statements = explode(';', $script);
foreach($statements as $sql){
if($sql === '') { continue; }
$query = $pdo->prepare($sql);
$query->execute();
if($query->errorCode() !== '00000'){ die("ERROR: SQL error code: ".$query->errorCode()."\n"); }
}

关于php - 使用 PHP/PDO 将 SQL 脚本运行到 PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25968227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com