我希望有人可以帮助我将这段代码从对象形式转换为程序形式。
因此,当我尝试转换此片段来自对象形式的较大代码片段时,我可以了解该怎么做。
我是一个全新的初学者。
$sql = "SELECT id, label, link_url, parent_id FROM dyn_menu ORDER BY parent_id, id ASC";
$items = mysql_query($sql);
while ($obj = mysql_fetch_object($items)) {
if ($obj->parent_id == 0) {
$parent_menu[$obj->id]['label'] = $obj->label;
$parent_menu[$obj->id]['link'] = $obj->link_url;
} else {
$sub_menu[$obj->id]['parent'] = $obj->parent_id;
$sub_menu[$obj->id]['label'] = $obj->label;
$sub_menu[$obj->id]['link'] = $obj->link_url;
$parent_menu[$obj->parent_id]['count']++;
}
}
mysql_free_result($items);
我知道这段代码有问题吗?
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT id, label, link_url, parent_id FROM dyn_menu ORDER BY parent_id, id ASC");
if (!$dbc) {
// There was an error...do something about it here...
print mysqli_error();
}
while ($obj = mysql_fetch_assoc($dbc)) {
if ($obj->parent_id == 0) {
$parent_menu $obj['id']['label'] = $obj['label'];
$parent_menu $obj['id']['link'] = $obj['link_url'];
} else {
$sub_menu $obj['id']['parent'] = $obj['parent_id'];
$sub_menu $obj['id']['label'] = $obj['label'];
$sub_menu $obj['id']['link'] = $obj['link_url'];
$parent_menu $obj['parent_id']['count']++;
}
}
mysql_free_result($dbc);
答案 0 :(得分:3)
我完全不确定你要完成什么。而不是mysql_fetch_object
,你想要使用其他东西吗? mysql_fetch_assoc
和mysql_fetch_array
大致相似。而不是$obj->id
,而是写$obj['id']
。
至于使用mysql_result
(按列号一次一列地获取数据),它应该慢得多。我无法想到使用它的充分理由。
<强>更新强>:
你的第二个代码片段使用三种不同的方式来访问MySQL:mysqli对象样式,mysqli过程样式和'旧'mysql扩展(mysql_ *函数)。那是行不通的。
这个PHP Manual page有一些不错的例子。它们展示了面向对象和“程序化”的风格。