+ -
当前位置:首页 → 问答吧 → 发个无聊的类

发个无聊的类

时间:2008-10-19

来源:互联网

[php]
<?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

自己可以扩充这个类来实现中文的SQL语言!哈哈!!!!!!

作者: 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