我有一个php文件,我在其中连接到我的数据库并检索我的值,
<?
$dbconn = mysqli_connect(..,..,..);
$query = ...
$result = ...
...
?>
这段代码的一切都很棒,但是当我把块放在php函数中时,我无法检索我的值(无法执行对过程的调用),我试着这样做:
<?
$dbconn = mysqli_connect(...,...,...);
function drawTable()
{
$query = ...
$result = ...
....
}
drawTable();
?>
答案 0 :(得分:3)
这是因为在函数范围内,外部变量不可见。
您可以通过将$ dbconn变量设为全局变量或将其作为参数传递来访问它。
global $dbconn;
$dbconn = mysqli_connect(...,...,...);
function drawTable()
{
global $dbconn;
$query = ...
$result = ...
....
}
drawTable();
或
$dbconn = mysqli_connect(...,...,...);
function drawTable($dbconn)
{
$query = ...
$result = ...
....
}
drawTable($dbconn);
答案 1 :(得分:0)
如果您在函数内使用$dbconn
变量,那么它将失败,因为它不在正确的范围内。将$dbconn
变量传递给函数,以便它可以使用它。
答案 2 :(得分:0)
方式1:访问全球$dbconn
。
$dbconn = mysqli_connect(...,...,...);
function drawTable()
{
global $dbconn;
$query = ...
$result = ...
....
}
drawTable();
方式2:将$dbconn
作为参数传递。
$dbconn = mysqli_connect(...,...,...);
function drawTable($dbconn)
{
$query = ...
$result = ...
....
}
drawTable($dbconn);
答案 3 :(得分:0)
您可以在另一个php文件中声明它,而不是在全局范围内声明conn,然后将其包含在函数中作为替代。
在conn.php中
$dbconn = mysqli_connect(..,..,..);
在您的函数.php
中function somefunction()
{
include('/dir/to/conn.php');
$query = ...
$result = ...
}
从这里开始,您可以将conn用于每个函数,但是必须将其包含在使用该连接的每个函数中。如果您需要更改连接参数,则可以通过conn.php进行更改。您不需要浏览所有功能。