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