mySQL/PHP:SQL语句、查询和结果分配在一行中?

mySQL/PHP:SQL语句、查询和结果分配在一行中?,php,mysql,Php,Mysql,是否可以在一行(或更短)内重新编写下面的代码,甚至可以使用if(result>0)语句 我见过一些很棒的、非常精简的构造,比如三元运算符(顺便说一句,请参阅注释中更多精简的行),将4-5行放在一行中,因此可能有一些用于上述单结果SQL查询的内容。您可以缩短 $query = $this->db->query("SELECT id FROM mytable WHERE this = that;"); $result = $query->fetch_object(); $id

是否可以在一行(或更短)内重新编写下面的代码,甚至可以使用
if(result>0)
语句

我见过一些很棒的、非常精简的构造,比如三元运算符(顺便说一句,请参阅注释中更多精简的行),将4-5行放在一行中,因此可能有一些用于上述单结果SQL查询的内容。

您可以缩短

$query  = $this->db->query("SELECT id FROM mytable WHERE this = that;");
$result = $query->fetch_object();
$id     = $result->id;

但是,如果任何函数返回意外的响应,那么这和原始代码都将发出错误。最好写:

$query  = $this->db->query("SELECT id FROM mytable WHERE this = that");
if (!$query) {
     error_log('query() failed');
     return false;
}
$result = $query->fetch_object();
if (!$result) {
     error_log('fetch_object() failed');
     return false;
}
$id     = $result->id;
你可以缩短

$query  = $this->db->query("SELECT id FROM mytable WHERE this = that;");
$result = $query->fetch_object();
$id     = $result->id;

但是,如果任何函数返回意外的响应,那么这和原始代码都将发出错误。最好写:

$query  = $this->db->query("SELECT id FROM mytable WHERE this = that");
if (!$query) {
     error_log('query() failed');
     return false;
}
$result = $query->fetch_object();
if (!$result) {
     error_log('fetch_object() failed');
     return false;
}
$id     = $result->id;

可以扩展DB库来执行
fetchOne()
type调用。您仍然需要正确的错误处理,就像查询可以、做并且会失败一样terseness@blockhead你能重写你的评论吗?对于非英语母语的人来说,这是不可理解的。谢谢@Panique blockhead只是简单地说,拥有清晰的代码(更容易阅读和维护)比拥有不必要的三元运算符要好,因为三元运算符只为了保存几个字符而使代码更难阅读。我的法语可能也一样糟糕(或更糟!)比你的英语还要好…但是让我们试试:Toujours choisir pour plus de clartéau Liue de Concisions可以扩展DB库来执行
fetchOne()
类型调用。您仍然需要正确的错误处理,就像查询可以、做并且会失败一样terseness@blockhead你能重写你的评论吗?对于非英语母语的人来说,这是不可理解的。谢谢@Panique blockhead只是简单地说,拥有清晰的代码(更容易阅读和维护)比拥有不必要的三元运算符要好,因为三元运算符只为了保存几个字符而使代码更难阅读。我的法语可能也一样糟糕(或更糟!)比你的英语还要好…但让我们试试:唱诗班加上简洁的语言