gpt4 book ai didi

Php 在单独的查询中拆分 SQL

转载 作者:行者123 更新时间:2023-11-29 05:19:22 25 4
gpt4 key购买 nike

我想在单独的查询中拆分 SQL... 但仍然行不通

$string = 'CREATE TABLE `articles` (
`id` int(9) auto_increment,
`context` text,
PRIMARY KEY (`id`)
) DEFAULT CHARSET='utf8' COLLATE='utf8_general_ci';

INSERT INTO `articles` VALUES (1, "insert; row1;"),
(2, "update; row2;")';


preg_match_all("/([^;\"]*?(\".*?\")?)*?;\s*/U", $string, $result);
print_r($result[0]);

最佳答案

使用爆炸:

$queries = explode(";\n", $string);

或者您可以预先过滤字符串:

$strings = array();
function capture($match) {
global $strings;
$strings[] = $match[0];
return '<<<' . count($strings) . '>>>';
}
function recopy($string) {
global $strings;
foreach($strings as $key => $value) {
$string = str_replace('<<<' . $key . '>>>', $value, $string);
}
return $string;
}
$string = preg_replace_callback('#([\'"]).*(?<!\\\\)(?:\\\\\\\\)*\\1#isU', 'capture', $string);
$queries = array_map('recopy', explode(";", $string));

如 Rasmus 所说,用\' 转义 '。

关于Php 在单独的查询中拆分 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27938311/

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