我想镆铘雷沃中的一个片段中查询数据库:运行自定义数据库查询
<?php
$leadersql = "SELECT * FROM `modx_menus`";
$result = mysql_query($leadersql);
while ($row = mysql_fetch_array($result)) {
echo "hello";
};
?>
在埃沃这个工作得很好,但在雷沃没有返回。
我是否需要设置不同?
我想镆铘雷沃中的一个片段中查询数据库:运行自定义数据库查询
<?php
$leadersql = "SELECT * FROM `modx_menus`";
$result = mysql_query($leadersql);
while ($row = mysql_fetch_array($result)) {
echo "hello";
};
?>
在埃沃这个工作得很好,但在雷沃没有返回。
我是否需要设置不同?
基督徒的代码不工作,你可能需要先定义$排阵:
$leadersql = "SELECT * FROM `modx_menus`";
$query = $modx->query($leadersql);
$rows = array();
if ($query) {
// loop through the result set and inspect one row at a time
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
array_push($rows, $row);
}
}
echo '<br /><br /><pre>';
print_r($rows);
echo '</pre>';
如果不是: - 你有菜单项定义? - 您正在调用您的代码段未缓存?
理想情况下,您可以使用xPDO方法来构建数据库查询。它会自动转义提供的参数,创建跨数据库类型转换的查询(目前为mysql & mssql),并具有许多其他优点。但是,您需要为自定义表创建类和地图,因此设置起来也更为棘手。 Bob's guides具有良好的信息一样,Lazylegs
但是,当然,你可以实现你的特定的查询,而无需使用XPDO:
$leadersql = "SELECT * FROM `modx_menus`";
$query = $modx->query($leadersql);
if ($query) {
// loop through the result set and inspect one row at a time
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
array_push($rows, $row);
}
}
而且另外还有Rowboat附加,跨数据库表行迭代 - 如果您的要求很简单。
为什么不使用内置的xPDO方法:
$menus = $modx->getCollection('modMenu');
if ($menus) {
foreach ($menus as $menu) {
echo $menu->get('text');
}
}
你可以试试这个代码:
<?php
include './core/config/config.inc.php';
$con=mysqli_connect($database_server,$database_user,$database_password,$dbase);
// Check connection
mysqli_set_charset($con, "utf8");
if (mysqli_connect_errno()) {
//echo "Failed to connect to MySQL: " . mysqli_connect_error();
return "DB error";
}
$result = mysqli_query($con,"SELECT id, pagetitle, uri FROM `modx_site_content` WHERE parent = ".$parentId);
while($row = mysqli_fetch_array($result))
{
//do something with $row['pagetitle'];
}
其中$ parentId的是片段调用示例参数。
谢谢,但没有运气!用我自己的表创建我自己的数据库并正常连接它会更容易吗? – MeltingDog
我刚刚添加了一条关于划艇的专栏 - 你看过吗? – christianhanvey
是 - 划艇只输出查询结果不是吗?我不能把它放到PHP变量可以吗? – MeltingDog