0

Windows 7 Ultimate、SQL Server 2008 R2、php 5.2.6 を使用しています。PHP は初めてです。グローバル変数が定義されている globalvars.php というファイルがあります。

globalvars.php

<?
  session_start();
  include_once('database.php');

  //global vars
  $_APP["SQL_DB_NAME"]="DB_NAME";
  $_APP["SQL_DB_SERVER_NAME"]="SERVER_NAME";
  $_APP["SQL_DB_USER"]="USERNAME";
  $_APP["SQL_DB_PASS"]="PASSWORD";

  $_APP["DATE_FORMAT"] = "d-m-Y";
  $_APP["TIME_FORMAT"] = "H:i";

  //generic function for SQL composition to avoid 's errors     
  function SQuoteEx($str)
  {
return "'" . str_replace("'","''",$str) . "'";
  }
  function RemoveSQuoteEx($str)
  {
return "'" . str_replace("'","",$str) . "'";
  }
  ?>

また、database.php という名前のこのファイルもあります。グローバル変数は、SQL Server データベースに接続するスニペット関数で呼び出されます。

データベース.php

function DBConnect($sql,$debug=0)
  {
global $_APP;
//connect to db and execute query
$cnn = mssql_connect($_APP["SQL_DB_SERVER_NAME"], $_APP["SQL_DB_USER"],       $_APP["SQL_DB_PASS"]) or die(errorHandlingPage(mssql_get_last_message()));
$selected = mssql_select_db($_APP["SQL_DB_NAME"], $cnn) or die(errorHandlingPage(mssql_get_last_message())); 
$debug = 0;
//if debug mode echo sql
if ($debug) echo $sql."<br>";
//execute and return rs

$return = mssql_query($sql) or die(errorHandlingPage(mssql_get_last_message()));

if($return){
    return $return;
}   
  }

何らかの理由でグローバル変数を database.php ファイルで読み取ることができません。何が起こっているのですか?mssql_get_last_message() によるメッセージが渡されませんでした。ありがとうございました。

4

2 に答える 2

1

これは、グローバル変数を宣言するdatabase.phpにファイルをインクルードしているためです。宣言の一番下に移動するだけです。include_once('database.php');

PHP では、include別の PHP ファイルを使用すると、そのファイルが解析され、すぐに実行されます。ファイルを作成するに、必要な変数を宣言する必要がありinclude_once('database.php');ます。

于 2012-12-11T02:40:34.833 に答える
0

ブラウザでどのページを呼び出していますか? ブラウザで database.php ファイルを呼び出して関数を実行するようです。

そうは言っても、database.php ファイルでは、ファイルの先頭に globalvars.php を含める必要があります。

データベース.php

include_once('globalvars.php');
// rest of your code...
于 2012-12-11T07:57:10.813 に答える