php pdo fetch不使用函数

时间:2013-08-31 20:20:02

标签: php mysql pdo

任何人都可以告诉我在这个小小的php片段中我出错了吗

的config.php

$sql = "SELECT * FROM sidemenu;";
$q = $conn->query($sql);

php在我的html文件中

$q->setFetchMode(PDO::FETCH_NUM);
while($r = $q->fetch()){
    echo "
    <li>
       <a class='gn-icon ".mysql_real_escape_string($r[0])."'>".mysql_real_escape_string($r[1])."
       </a>
    </li>";
}

现在,此代码段正常工作,并且正如预期的那样,从数据库中为我生成列表项。 但现在当我尝试这样的事情时

$q->setFetchMode(PDO::FETCH_NUM);
function mainMenu(){
while($r = $q->fetch()){
    echo "
    <li>
       <a class='gn-icon ".mysql_real_escape_string($r[0])."'>".mysql_real_escape_string($r[1])."
       </a>
    </li>";
}
}
mainMenu();

现在这个由于某种原因不起作用,现在我不太清楚知道php,只是学会了一些数据库集成所以如果有人能告诉我错误地复制了什么...

1 个答案:

答案 0 :(得分:0)

这是因为mainMenu()函数的范围是外部变量不可用,你需要将变量作为参数传递,如:

mainMenu($q);

请详细了解Variable Scope

此外,输出数据时不需要mysql_real_escape_string()