我有一张 table
$query=
"CREATE TABLE screenshot ".
"(screenshot_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, ".
"source_video_id INT UNSIGNED NOT NULL, ".
"screenshot_file_name VARCHAR(128), ".
"x_res INT, ".
"y_res INT, ".
"time INT UNSIGNED);";
mysql_query($query);
然后我将东西插入到那个表中。
我经常想做一个 SQL 查询并迭代查询的结果,但最终还是这样做了。
//select all screenshots from video, by video id
$q0=
"SELECT * FROM screenshot ".
"WHERE source_video_id = '$source_video_id' ".
"AND x_res = 120 ".
"AND y_res = 90 ".
"ORDER BY time ASC;";
$r0 = mysql_query($q0);
$n0_num = mysql_numrows($r0);
//for each result
for($n0=0;$n0<$n0_num;$n0++) {
$source_video_id = mysql_result($r0,$n0,'source_video_id');
$time = mysql_result($r0,$n0,'time');
$screenshot_file_name = mysql_result($r0,$n0,'screenshot_file_name');
//do stuff for each returned result!
}
这太丑了。要获得 SQL 查询结果,我必须为每一列都写这个! $source_video_id = mysql_result($r0,$n0,'source_video_id');
我必须编写一个丑陋的循环,获取返回的每一行的结果并为每个结果做一些事情。基本上我想要类似的东西;
foreach($SQL_command) {
//Do for each result
}
我希望每一行的列变量都已经设置好,这样我就不必这样做了
$source_video_id = mysql_result($r0,$n0,'source_video_id');
对于我想要访问的每一列!
我厌倦了编写样板代码来为我数据中的每个表执行此操作。是否有任何框架或库可以减轻这种痛苦?
最佳答案
这些是 database abstraction layer 的基础知识.自己编写程序并不难,或者您可以使用像 Doctrine 这样的通用库。或 Propel . Every notable PHP framework还包括某种形式的数据库抽象,您真的只需要开始使用一个。
关于php - 什么是处理 PHP 应用程序到 SQL 数据库的良好包装器/框架/库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3262194/