上次那个帖子终于让我潜心下来设计一个稍微符合Design Pattern的新框架。于是一切都得重写,不过也终于可以学学PHP4以来PHP更新的那些东西了。
目前写到了数据库方面的。今天PDO连接管理器已经写完,可以从配置中取得数据库信息然后进行链接。下面就是写具体的查询操作类了。
但是现在有了一个问题,我除了MySQL和MSSQL,PDO驱动里的其他数据库我都没用过啊(是啊,SQLite都没用过,曾经有家伙提示我可以用那个做缓存啊,但是我觉得解序列化更快啊)。
于是,这就是个知识的缺憾啊。。。。。。所以为了保险我想问一下:
// 问题开始
PDO里那些数据库,简单CURD的话,是不是用ANSI里规定的SQL语法就行了?比如:
SELECT `field1`, `field1`, `field2` FROM `table` WHERE 1 GROUP BY `group` ORDER BY `order` DESC LIMIT 1,2 // 虽然Group by没什么意义
UPDATE `table` SET `a` = 'a' WHERE 1
DELETE FROM `table` WHERE `a` = 'a'
INSERT INTO `table`(`a`, `b`, `c`) VALUES (1,2,3),(1,2,3),(1,2,3),(1,2,3);
// 问题结束
我问上列问题主要是担心不兼容性。比如原先配置的是MySQL,后来改Oracle了,而我又不想改任何一行代码。而PDO只是保证过程一致性,但各个数据库对SQL语法的支持不太一样。
如果上面的简单CURD可行的话,我是不是就不需要为每一个PDO驱动单独去封装专门的操作类了?
感谢。
目前写到了数据库方面的。今天PDO连接管理器已经写完,可以从配置中取得数据库信息然后进行链接。下面就是写具体的查询操作类了。
但是现在有了一个问题,我除了MySQL和MSSQL,PDO驱动里的其他数据库我都没用过啊(是啊,SQLite都没用过,曾经有家伙提示我可以用那个做缓存啊,但是我觉得解序列化更快啊)。
于是,这就是个知识的缺憾啊。。。。。。所以为了保险我想问一下:
// 问题开始
PDO里那些数据库,简单CURD的话,是不是用ANSI里规定的SQL语法就行了?比如:
SELECT `field1`, `field1`, `field2` FROM `table` WHERE 1 GROUP BY `group` ORDER BY `order` DESC LIMIT 1,2 // 虽然Group by没什么意义
UPDATE `table` SET `a` = 'a' WHERE 1
DELETE FROM `table` WHERE `a` = 'a'
INSERT INTO `table`(`a`, `b`, `c`) VALUES (1,2,3),(1,2,3),(1,2,3),(1,2,3);
// 问题结束
我问上列问题主要是担心不兼容性。比如原先配置的是MySQL,后来改Oracle了,而我又不想改任何一行代码。而PDO只是保证过程一致性,但各个数据库对SQL语法的支持不太一样。
如果上面的简单CURD可行的话,我是不是就不需要为每一个PDO驱动单独去封装专门的操作类了?
感谢。
