Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 字段和列具有不同名称时的PDO FETCH_类_Php_Pdo - Fatal编程技术网

Php 字段和列具有不同名称时的PDO FETCH_类

Php 字段和列具有不同名称时的PDO FETCH_类,php,pdo,Php,Pdo,从文档和: 是否有一个通用的解决方案将列名称映射到fiels?我尝试了几种FETCH_模式的组合,希望其中一种能够将结果传递给构造函数,但没有一种有效 通常情况下,列名与类中定义的字段不同 首先不应该发生这种情况。当列名被认为与类属性匹配时,这种获取模式的目的就是简化属性分配。因此,程序员始终使用相同的命名—SQL表列名、HTML表单输入字段名以及相应的类属性。这才是真正的通用解决方案 但是,如果您需要,有两种解决方案,一种是基于SQL的,通过在查询中使用别名;另一种是基于OOP的,您可以使用m

从文档和:

是否有一个通用的解决方案将列名称映射到fiels?我尝试了几种FETCH_模式的组合,希望其中一种能够将结果传递给构造函数,但没有一种有效

通常情况下,列名与类中定义的字段不同


首先不应该发生这种情况。当列名被认为与类属性匹配时,这种获取模式的目的就是简化属性分配。因此,程序员始终使用相同的命名—SQL表列名、HTML表单输入字段名以及相应的类属性。这才是真正的通用解决方案


但是,如果您需要,有两种解决方案,一种是基于SQL的,通过在查询中使用别名;另一种是基于OOP的,您可以使用magic
\u set()
方法来实现您想要的任何重命名逻辑

“因此,程序员一直都在使用相同的命名——SQL表列名、HTML表单输入字段名以及相应的类属性。”如果你在2015年告诉我你将在面试中回答问题时这样做,我会直接要求你立即离开。
<?php
class fruit {
    public $name;
    public $colour;
}

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

$result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit");
var_dump($result);
?>
$sth = $dbh->prepare("SELECT f_name, f_colour FROM fruit");