发个无聊的类
时间:2008-10-19
来源:互联网
<?php
/**
*选择 字段(全部) 从 表格(test) 条件为 id 等于 1
*删除 从 表格(test) 条件为 id 等于 1
*插入 test(id,name,password) 值('1','songsong','123456')
*/
class SQLParser {
private $_sqlstr;
private $_keywords;
public function SQLParser() {
$this->_keywords = array('选择'=>'SELECT',
'全部'=>'*',
'从'=>'FROM',
'删除'=>'DELECT',
'插入'=>'INSERT INTO',
'等于'=>'=',
'小于'=>'<',
'大于'=>'>',
'大于等于'=>'>=',
'小于等于'=>'<=',
'值'=>'VALUES',
'条件为'=>'WHERE');
}
public function setSQL($sql) {
if(isset($sql)) {
$this->_sqlstr = $sql;
return true;
} else {
return false;
}
}
public function parse() {
$this->_sqlstr = preg_replace("/字段\\(([^\\(\\)]{1,})\\)/" ,"$1" ,$this->_sqlstr);
$this->_sqlstr = preg_replace("/表格\\(([^\\(\\)]{1,})\\)/","$1" ,$this->_sqlstr);
$sql_tmp = $this->_sqlstr;
foreach($this->_keywords as $keyword => $value) {
$this->_sqlstr = str_replace($keyword, $value, $this->_sqlstr);
}
return $this->_sqlstr;
}
}
$p = new SQLParser();
$p->setSQL("插入 test(id,name,password) 值('1','songsong','123456')");
echo $p->parse();
echo '<br/>';
$p->setSQL("选择 字段(id,name,password) 从 表格(test) 条件为 id 等于 1");
echo $p->parse();
echo '<br/>';
$p->setSQL("删除 从 表格(test) 条件为 id 等于 1");
echo $p->parse();
?>
[/php]
输出:
INSERT INTO test(id,name,password) VALUES('1','songsong','123456')
SELECT id,name,password FROM test WHERE id = 1
DELECT FROM test WHERE id = 1
作者: liexusong 发布时间: 2008-10-19
作者: liexusong 发布时间: 2008-10-19
作者: foxla 发布时间: 2008-10-19

作者: highjade 发布时间: 2008-10-21

作者: 逆雪寒 发布时间: 2008-10-21
不过将这个想法,移植到其他地方,扩展开来,实现中文替代复杂的英文语句,这样对我们这些英文不好的人来说很不错,呵呵
作者: shanhun59 发布时间: 2008-10-21
叫“易SQL”好了
作者: gently 发布时间: 2008-10-21
作者: liexusong 发布时间: 2008-10-21

作者: 0hudu 发布时间: 2008-10-21
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28