有没有什么方法可以在一行代码中使用面向对象的风格?
当然。
这正是面向对象的风格。
但是,您并不十分了解面向对象风格的概念。
实际上,这个想法不是将一些 OO 方法放在一起以获得一些笨拙和不可靠的构造,而是创建一个类,它将具有满足您所有需求的方法。
@Touch's 的回答绝对正确,但当然这只是一个草图。必须扩展这样的类以具有您需要的所有方法:
说,要从表中获得一列,
$a = $db->getOne("SELECT column FROM table LIMIT 1");
或者得到一整行:
$row = $db->getRow("SELECT * FROM table LIMIT 1");
或所有行
$data = $db->getAll("SELECT * FROM table");
您可能会注意到,这些片段不仅比其他答案中的愚蠢方法更短,而且已经实现了错误报告、查询日志记录、分析和许多其他有用的东西。
您还应该考虑到占位符支持是必须的!否则所有这些东西都将毫无用处。请注意,基于 OO 的专用解决方案是将代码保留在一行中的唯一方法:使用原始 API 方法,您最终将不是一行,而是至少有十几行。
然而这样的类可以保持单行:
$name = $db->getOne('SELECT name FROM table WHERE id = ?i',$_GET['id']);
$data = $db->getInd('id','SELECT * FROM ?n WHERE id IN ?a','table', array(1,2));
$data = $db->getAll("SELECT * FROM ?n WHERE mod=?s LIMIT ?i",$table,$mod,$limit);
这是我正在谈论的一个类的示例。,你已经可以使用了。