0

我正在使用一个名为“lib.php”的文件,我在其中定义了许多函数。这些功能之一如下:

function dbconn()
{
$servername="127.0.0.1";
$username="root";
$conn=mysql_connect($servername,$username)or die(mysql_error());
mysql_select_db("profit",$conn) or die(mysql_error());
}

在我网站的所有 .php 页面中,我一直在使用这个dbconn()功能,它似乎可以很好地从数据库中读取信息。但是,在尝试写入信息时,似乎会出现问题。具体来说,以下代码不起作用:

<?php
require ("lib.php");
set_time_limit(60);
session_start();
dbconn();
$sql="update `city` set end_dt=now() where city_id='$_POST[killcity]'";
$result=mysql_query($sql,$conn) or die(mysql_error());
header("Location: manipulate.php");
?>

它说这conn是一个未定义的变量,而它应该dbconn()在 lib.php 中定义。

所以,我找到了解决这个问题的方法,而是创建一个名为 dbconn.php 的新 php 文件,其中包含与 完全相同的内容dbconn(),并插入require ("dbconn.php");而不是dbconn();.

但我仍然想知道:为什么原来的方式不起作用?

4

1 回答 1

1

您可以通过在函数中使用全局变量来为函数添加返回语句,这不是一个好习惯。如果您愿意,请查看全局变量的工作原理

function dbconn() {
    $servername="127.0.0.1";
    $username="root";
    $conn=mysql_connect($servername,$username)or die(mysql_error());
    mysql_select_db("profit",$conn) or die(mysql_error());
    return $conn;
}

$conn = dbconn();
于 2012-07-22T03:52:53.087 回答