PHP işlevleri içinde global değişkenleri erişme

2 Cevap php

Orada bağlamak ve daha sonra bir MySQL veritabanını sorgulamak için gereken bir sayfada birden çok kez, henüz benim kod bana izin vermez. Ben benim dosyaları iç içe nasıl bir ilgisi olabileceğini düşünüyorum ama hiçbir mantıklı. Ben başlık dosyasında SQL bağlantı açıyorum. Soruna sayfanın üst aşağıdaki gibi görünür:

<?php 
$page_title = 'Dashboard';
include('templates/header.inc'); // includes a 'require_once('mysqli_connect.php') and a small query to the database;
require_once('includes/functions.php');
require_once('includes/dashboard_sql.php'); // Contains functions which connect to database (which are failing.)
?>

Ben PHP hata alıyorum

Notice: Undefined variable: dbc in / Library / WebServer / Documents / pediatory_site / includes / dashboard_sql.php

$ Dbc mysqli_connect.php tanımlanan veritabanı bağlantısı olduğu.

Herkes bana yardımcı olabilir, bu harika olurdu.

2 Cevap

Muhtemelen scope ile ilgisi yoktur.

$dbc = 1;

function foo() {
   echo $dbc; // Undefined variable
   echo $GLOBALS['dbc']; // 1, like defined above
   $otherVar = 2;
}

echo $otherVar; // Undefined variable

$ Dbc değişkeni birden çok kez kullanılırsa, yazmak için daha kısa:

function foo() {
   global $dbc;
   echo $dbc; // 1, like defined above
}

I think when using the Require_Once method for creating a db connection the var gets cleared after the method closes the connection to the file. Try require or include for this kind of operations, and check if that works

<?php 
$page_title = 'Dashboard';
include('templates/header.inc'); // includes a 'require_once('mysqli_connect.php') and a small query to the database;
require_once('includes/functions.php');
include('includes/dashboard_sql.php'); // Contains functions which connect to database (which are failing.)
?>

yani, ben denemek ve şablonları / header.inc gidin ve bir içermeyen ve yardımcı olmadığını kontrol etmek Require_once yöntemini değiştirmek, deftere kodu include yönteme require_oncenin değişti.

it should. otherwise try creating the connection to the database in the same file, instead seperetated connections over separate files.