2013-08-31 89 views
0

誰能告訴我在哪裏,我在這個小PHP代碼片段PHP PDO取指不與功能工作

的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的很清楚,只是學到了一些數據庫的集成,所以請如果任何人都可以告訴我怎麼錯複製。 ..

回答

0

這是因爲mainMenu()函數變量之外不可內的範圍,你需要傳遞變量參數,如:

mainMenu($q); 

請參閱更多關於Variable Scope

另外,輸出數據時不需要mysql_real_escape_string()

+0

哦,我補充說,由於我在我的db值中有一些特殊字符,當它們在原始文件中出現時會引起一些麻煩,並且感謝您的答覆,我根本沒有這樣想,仍然與傳統混淆全球範圍:p – DeadMan