我正在敲打这个。
实际上,我使用这种方式编写相同的算法。 但不幸的是,我不知何故忘记了。这是一个类似于我需要的代码。
$result=mysql_query("select * from mydata order by 'id'")or die('died');
$num_fields = mysql_num_fields($result);
$j=0;
$x=1;
while($row=mysql_fetch_array($result)){
for($j=0;$j<$num_fields;$j++){
$name = mysql_field_name($result, $j);
$object[$x][$name]=$row[$name];
}$x++;
}
最后,使用这个,我可以访问我的查询结果。
$ result = array;
for($row = 1; $row < count($object); $row++){
$result[$row]['name of my field];
}
我目前的挑战是使用OOP而不是Procedural在MySQLi中编码。
我希望有人可以提供帮助。
答案 0 :(得分:0)
每当你发现自己敲打头脑时,这意味着你正以最怪异和最不方便的方式完成一些基本任务。
这是你必须使用旧的mysql驱动程序的代码。
$object = array();
$result = mysql_query("select * from mydata order by id");
while($row = mysql_fetch_assoc($result)){
$object[] = $row;
}
使用mysqli重写它没有问题。
然而,不是使用OOP在MySQLi中编码,而是必须使用OOP在PDO中对其进行编码:
$object = $pdo->query("select * from mydata order by id")->fetchAll();
答案 1 :(得分:0)
我明白了。
我觉得我必须分享它。
function QueryToArray($result){
$fields = array();
$resultset = array();
$x = 1;
$y = 1;
while ($property = mysqli_fetch_field($result)) {
$fields[$x] = $property->name;
$x++;
}
while($rows = mysqli_fetch_array($result)){
for($x = 1; $x <= count($fields); $x++){
$fieldname = $fields[$x];
$resultset[$y][$fieldname] = $rows[$fieldname];
}
$y++;
}
return $resultset;
}
所以,这是我的功能(我知道我仍然可以使它更清洁)。
有了这个,每当我查询我的表时,我所有的代码就是这个。
$result = $this->QueryToArray($result);
for($x = 1; $x <= count($result); $x++){
echo $result[$x]['Name'];
echo " - " . $result[$x]['Description'] . "<br>";
/* $result[row number][field name] */
}
我让生活更轻松,我可以更轻松地进行分页。
虽然它不仅仅是OOP,但它可以完成工作。