php*_*utt 3 php regex preg-match
考虑这三个mysql语句:
select * from Users;
select id, title, value from Blogs;
select id, feelURL, feelTitle from Feeds where id = 1;
Run Code Online (Sandbox Code Playgroud)
现在我不是很擅长REGEX,但我想从mysql查询中获取表名.有人可能会为我创建一个有一点解释.
谢谢,
小智 5
实际上,无论SQL语法有多复杂,您都可以使用MySQL作为解析器并在查询中获取表名.
(对不起,这是对你的问题的迟到回复 - 我今天遇到了同样的问题并找到了这个解决方案.)
只需在查询前加上单词EXPLAIN,返回给PHP的结果集将包括id,select_type,table,type,possible_keys,key,key_len,ref,rows,Extra.第三列是查询中每个表的名称.
例如,如果您的查询是:
select count(*) from ey_def left join ey_rels on def_id=item_id;
Run Code Online (Sandbox Code Playgroud)
使用:
explain select count(*) from ey_def left join ey_rels on def_id=item_id;
Run Code Online (Sandbox Code Playgroud)
MySQL会将此返回给PHP:
+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+
| 1 | SIMPLE | ey_def | index | NULL | PRIMARY | 4 | NULL | 87 | Using index |
| 1 | SIMPLE | ey_rels | ALL | NULL | NULL | NULL | NULL | 123 | |
+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+
Run Code Online (Sandbox Code Playgroud)
现在您可以像处理任何其他查询一样简单地处理结果.
| 归档时间: |
|
| 查看次数: |
7098 次 |
| 最近记录: |