2013-08-31 2 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

Смежные вопросы