- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
人们通常如何将mysqli结果转化为对象?
在使用自定义类时,我找不到任何有关 fetch_object() 的示例。假设以下设置
class Test1 {
function __construct(array $data) { ... }
}
class Test2 {
function __construct(array $data) { ... }
}
假设我有多个具有相同构造函数的类,我如何动态实例化这些类?
我会想象这样的事情:
function customQuery($query, $class) {
// Get some data by mysqli query, assume we get the data as $result object
...
// Now I would like to store the data in an array with instances of $class
$array = array();
while ($obj = $result->fetch_object($class, ???) {
$array[] = $obj;
}
// Return the array with instances of $class
return $array;
}
我用什么作为问号的参数?我只知道 Test1 和 Test2 的类构造函数都需要一个关联数组作为输入(可能长度不一样!)。
最后我只是想做一些类似的事情
$arr1 = customQuery('SELECT id, product FROM test1 LIMIT 10', 'Test1');
$arr2 = customQuery('SELECT id, name, address FROM test2 LIMIT 10', 'Test2');
当然,如果您有更好的想法来实现我的目标,我将不胜感激。
最佳答案
看看“fetch_object”
你有一个参数 $class_name
来自文档:要实例化、设置属性并返回的类的名称。如果未指定,则返回一个 stdClass 对象。
它将自动创建给定类的实例并设置属性。所以不需要传递数组 http://www.php.net/manual/en/mysqli-result.fetch-object.php
多一点解释,
fetch_object 只是填充私有(private)属性等(PHP Magic...我不喜欢它)。
如果您的对象在构造函数中有必需的参数,但您想从数据库中获取它,则 fetch_object 允许您为构造函数定义参数,这样它就可以被构造而不是抛出警告/错误。
class Test {
private $title;
public function __construct($required) {
}
}
$mysql->fetch_object('Test'); //will trigger errors/warnings
$mysql->fetch_object('Test', array(null)); //won't
你可以做的是简单地获取一个数组并构造对象
function query($query, $class) {
$data = $query->fetch_assoc();
$instance = new $class($data);
return $instance;
}
关于php - 如何使用 mysqli::fetch_object()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17362039/
我编写了这个 PHP 文件,其中包含用于收集表中所有帖子的 SQL。 $selectpost = mysql_query(" SELECT posts.id, COUNT(post_likes.id)
" . $id . " AND id query($sql); while ($msg = $result->fetch_object()) { ?> ...
当我尝试检索头像列后它停止工作时,我正在使用 fetch_object 函数从我的表中检索行。 include "db_conx.php"; $sql = ('SELECT uid,username,
人们通常如何将mysqli结果转化为对象? 在使用自定义类时,我找不到任何有关 fetch_object() 的示例。假设以下设置 class Test1 { function __const
我收到此错误: Fatal error: Call to a member function fetch_object() on a non-object in C:\.....php on line
我开始使用 mysqli,但我对它的工作原理有点困惑。 所以我有一个功能: function verify_payment_date() { $today = date("Y-m-d");
我有一个特定的 mysqli 查询,它在结果集数组的第 0 个位置返回一个空元素。当我尝试遍历结果集以显示到屏幕时,这个空的非对象元素似乎会导致问题 $projAreas[] = array(); $
我对 PDO::FETCH_OBJECT 参数有疑问。我想获取一个对象而不是一个数组,但是当我尝试这样做时: try { $conn = new PDO('mysql:host=localho
我将尝试使用 fetch_object('Classname') 来测试这个方法。 Inserent.php 中的类 Inserent: namespace classes\model; class
我在 web 应用程序和使用关系数据库方面真的很新,我正在尝试使用它同时从 5 个表中制作一个 select 和一个 print我在 YouTube 视频中看到的方法,在第一个 select 中,我选
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我正在学习 mysqli。 我正在尝试从表“tbllogin”中获取数据。 //DATABASE CONNECTION $hostname="p:localhost";
在 php mysql/mysqli/postgre/etc... 中有 fetch_object 函数,您可以在其中获取数据行的对象。默认情况下,它将返回一个 stdClass 的对象,但您也可以为
尝试从另一个表中回显作者列。目前数据库中有两个表,一个称为entries,另一个称为comments。两者都有 ID,但都有相同的列名“author”。在 SQL 语句中,您可以执行 select *
我不明白两者之间有什么区别: $row = mysqli_fetch_object($res) 还有这个: $row = $res->fetch_object() 哪一个更好。 最佳答案 正如 Mar
这个问题似乎最近才出现在我身上(我不记得以前在类似的情况下遇到过这个问题)。使用以下代码,php 循环并显示一个包含 MySQL 表中的值的表单。如果任何值包含空字符串,我会收到以下通知: 注意: u
PHP mysqli_result 类实现 Traversable 接口(interface)已有一段时间了。这提供了一些有趣的可能性,例如以下代码: query( '...' ); foreach(
当使用类似的东西时: $db = new PDO(connection_details) $query = "SELECT * FROM vservers LIMIT 5"; $result = $d
我正在尝试根据 MySQL 中定义的类型转换 mysqli_result->fetch_object() 的属性。 例如,如果我的 id 列在 MySQL 中是 bigint(20),我想要 mysq
这就是我的屏幕给我的信息 mysqli_result Object ( [current_field] => 0 [field_count] => 1 [lengths] =>
我是一名优秀的程序员,十分优秀!