0

多くの関数を定義した「lib.php」というファイルを使用しています。これらの関数の 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());
}

私のウェブサイトのすべての .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()にdbconn.php とまったく同じものを含む新しい php ファイルを作成し、.require ("dbconn.php");dbconn();

しかし、私はまだ疑問に思っています: なぜ元の方法がうまくいかなかったのですか?

4

1 に答える 1

1

関数でグローバル変数を使用することで、関数に return ステートメントを追加できますが、これはお勧めできません。必要に応じて、グローバル変数の仕組みを参照してください。

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 に答える