Примечание PHP: неопределенная переменная: conn in [duplicate]

Механизмы сценариев могут использовать его в собственном интерфейсе для выделения собственных объектов из скриптов. Для примера см. Angelscript (www.angelcode.com/angelscript).

-1
задан Phil Schuster 16 January 2019 в 22:54
поделиться

1 ответ

include_once 'dbh.php'; в пределах ваша функция кажется подозрительной. Что вы будете делать, если у вас есть другие функции, которые также должны выполнять SQL-запросы?

Вместо этого я бы поставил include_once 'dbh.php'; вне (над) вашей функции и, возможно, использовал бы require_once вместо [ 114]. И затем внутри вашей функции поместите global $conn; над вызовом mysqli_query, чтобы ваша переменная $conn определялась там, когда вы передаете ее в mysqli_query.

Однако, если вы беспокоитесь о создании ненужных соединений SQL (например, в случае, если ваша функция lookup никогда не вызывается), я думаю, было бы еще лучше поместить это в ваш dbh.php:

<?php

$conn = null;

function Query($sql)
{
    global $conn;   
    if (!$conn) // will only connect if connection does not exist yet
    {
        $dbServername = 'localhost';
        $dbUsername = 'root';
        $dbPassword = 'xxxxxxxxxxx';
        $dbName = 'Recipe';
        $conn = mysqli_connect($dbServername,$dbUsername,$dbPassword,$dbName);
    }
    return mysqli_query($conn,$sql);
}

?>

И теперь в вашем основном PHP-файле или в любом PHP-файле, в который вы включаете require_once 'dbh.php';, вы можете напрямую использовать Query($sql) для выполнения запросов, которые позаботятся о самом соединении (и делают это только при необходимости). [ 1117]

0
ответ дан RocketNuts 16 January 2019 в 22:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: