как определить соединение внутри функции для связи pdo с БД - PullRequest
2 голосов
/ 16 мая 2010

Привет, ребята. Я только начал пытаться преобразовать свою структуру запросов в PDO и столкнулся со странной проблемой. Когда я вызываю соединение запроса pdo внутри функции, и соединение включается вне функции, соединение становится неопределенным. Кто-нибудь знает, что я здесь делаю не так? Я просто играл с ним, мой пример ниже.

include("includes/connection.php");

function query(){
    $user='user';
$id='100';
$sql = 'SELECT * FROM users';
$stmt = $conn->prepare($sql);
$result=$stmt->execute(array($user, $id));

// now iterate over the result as if we obtained
// the $stmt in a call to PDO::query()
while($r = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo "$r[username] $r[id] \n";
}
}
query();

1 Ответ

2 голосов
/ 16 мая 2010

Ваша область действия не имеет доступа к переменной $conn, one Чтобы обойти эту проблему, используйте , используя глобальные переменные . Вот пример:

function query(){
    global $conn;
    // your code here...
}

Поиск StackOverflow для Singleton , Factory , Registry и Inpendency Injection Шаблоны для других более сложных и элегантных альтернатив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...