用了一个星期的PHP,都算有点研究了,基本功能都可以用得很自如,但还有一些原理性问题请大家帮帮忙。1 . 因为初学 PHP ,所以装了 PHP Wind 来研究,很惊讶的发现,竟然没有用存储过程。想当初装 NT 版的 Discuz! 来研究的时候,一大堆的存储过程。难道这就是 PHP 与 Asp.net 的区别?现在的 MySQL 数据库代理商 都不支持存储过程,是否由于 PHP 的不需要?另外,有一些特别复杂的操作,并不是一两 条 SQL 语句能完成的,如果不用存储过程,对于这种情况大家会选用什么方法来完成?2 . 再说回 PHP Wind ,里面用的全是 MyISAM 表,的确,大论坛用 MyISAM 或者在速度上有所保证,但数据表之间就失去了外键,PHP 用的什么方法来保证数据的完整性?3 . 对数据库的连接,好像是 只连接一次,就可以进行多次操作,而且操作命令挺广的,好像在 MySQL 命令下能用的命令都能通过 mysql_query() 来执行似的。PHP的高效是否与此有关?只连接一次,中间多个数据库操作都在同一个连接里完成,而不必像 Asp.net 那样一个数据库操作就要断开一次连接。4 . 之前用 Asp.net 的时候 用习惯了存储过程,现在用 PHP ,竟然发现对 MySQL 的存储过程 支持是如此的差,调用倒是没问题,问题 在于多次调用。按照网上的说法(我自己也证实了),每次调用存储过程,就要关闭一次数据库连接。这样子的话,貌似 PHP 的优势就大打折扣了,一个方法下来打开/关闭了几次的数据库连接,这样子感觉又回到了 Asp.net 去了。说完了,似乎都是关于 MySQL 的。小弟在此先谢过了
(2)这个不太清楚;
(3)这个并非PHP的专利,基本上所有的数据库中间件如ODBC、JDBC、ADO等都支持这种用法的,这也是数据库应用中提高效率的最最基本的手段之一。ASP.NET执行一次操作就要断开一次连接?不会吧?那如果执行transction怎么办?
(4)这个也不清楚。帮你顶吧。
//这样会自动生成sql语句
$data=array(
'id'=1,
'name'='xxx',
);
$this->db->insert('my_table',$data);
?>还有php本身无法实现数据库连接池,虽然php连接mysql很高效,但是还是有局限的.
ab -c 1000 -n 10000一下就知道了.
至于存储过程,还有事务啥的,不同的数据库支持不一样,和php没啥关系吧.
php配MySQL我搞到现在也没用上,呵呵
去年从.net投奔php的,当时也惊讶,习惯就好
再说现在php用框架开发,很方便