【发布时间】:2014-08-26 20:44:07
【问题描述】:
我正在尝试从我的 sql 文件中获取表名以用于升级脚本,但我有一些不正确的地方。
我的 SQL 文件中具有名称的行是 CREATE TABLE 行:
CREATE TABLE IF NOT EXISTS `ocx_category` (
在preg_match_all 语句中,我使用了这个正则表达式:
preg_match_all('#create\s*table\s*`(\w[\w\d]*)`#i', $sql, $table);
但所有$table 都以:
array (size=2)
0 =>
array (size=0)
empty
1 =>
array (size=0)
empty
我哪里弄错了?
【问题讨论】:
-
您不需要同时使用
\w和\d,因为\w匹配字母、数字和下划线。 -
您的正则表达式与
IF NOT EXISTS不匹配。