含む
ここINCLUDE
にあるphpドキュメントからの説明。
ファイルは、指定されたファイル パスに基づいてインクルードされます。何も指定されていない場合は、指定された include_path に基づいてインクルードされます。ファイルが include_path に見つからない場合、include は失敗する前に呼び出しスクリプト自身のディレクトリと現在の作業ディレクトリを最終的にチェックインします。include コンストラクトは、ファイルが見つからない場合に警告を発します。これは、致命的なエラーを発生させる require とは異なる動作です。
$_SERVER['DOCUMENT_ROOT']関数とfile_exists()root directory
関数を使用してインクルードをクリーンアップし、ファイルへのパスを作成できます。例えば...
<?php
$my_root = $_SERVER['DOCUMENT_ROOT'];
$subpageheaderphp = $my_root . "/direct/path/to/file/from/root/subpageheader.php";
if(file_exists($subpageheaderphp)){include $subpageheaderphp;}else{echo "subpageheader in directory $subpageheaderphp could not be found <br/>";}
$hitcounterphp = $my_root . "/direct/path/to/file/from/root/hitcounter.php";
if(file_exists($hitcounterphp)){include $hitcounterphp;}else{echo "hitcounterphp in directory $hitcounterphp could not be found <br/>";}
PHP の例... 以下は、別のファイルをインクルードする刺激に使用するファイル構造です。

(出典: iforce.co.nz )
IncludeFrom.phpの内容
<?php
$DownStructure = "../../../includeTo.php";
echo "Including from the current directory: ".$DownStructure."<br/>";
if(file_exists($DownStructure)){include $DownStructure;}
$UpStructure = $_SERVER['DOCUMENT_ROOT']."/start/includeTo.php";
echo "<Br/>Including from first directory: ".$UpStructure."<br/>";
if(file_exists($DownStructure)){include $UpStructure;}
includeTo.phpの内容
<?php echo "<b>IncludeTo.php</b> was included!!"; ?>
PHP の結果

(出典: iforce.co.nz )
これの利点は、フォルダー構造内のファイルの追跡と移動がはるかに簡単になることです。これを行うことで、アプリケーションのベースからインクルードすることになり、サイト フォルダー構造を下のレベルに移動する必要はなく、上のレベルに移動する必要がなくなります。どちらのソリューションでも問題ありませんが。との違いは、$DownStructure
は相対パスであるのに対し、絶対パスであるということです。$UpStructure
$DownStructure
$UpStructure
データベース未選択エラー
データベースが選択されていないことに対する非常に簡単な解決策は. queries
たとえばSELECT * FROM mydatabase.mytable WHERE column = 'value'
、またはphp 構文 にデータベースを含めるように更新するにはSELECT * FROM $database.$table
、どこ$database
に$table
行きたいかについての必要な情報を格納しています。
Address
以下の例では、SalesLT
データベースが選択されたテーブルにいくつかの値を挿入しています。
INSERT INTO SalesLT.Address (AddressLine1, City, StateProvince, CountryRegion, PostalCode) VALUES ('75 W. 66th Street','New York','NY','United States','10023')
アドレステーブル
CREATE TABLE IF NOT EXISTS `address` (
`AddressLine1` varchar(200) NOT NULL,
`City` varchar(200) NOT NULL,
`StateProvince` varchar(200) NOT NULL,
`CountryRegion` varchar(200) NOT NULL,
`PostalCode` varchar(200) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
PhpMyAdmin の結果。使用する を選択していませんprimary database
が、クエリで を選択しdatabase
ていinsert query
ます。

(出典: iforce.co.nz )
次のコードを使用した PHP テスト。以下の例で、 mysql_select_dbdatabase
で aを選択していないことがわかります。
<?php
$conn = mysql_connect("localhost", "root", "") or die(mysql_error());
echo "Connected to MySQL<br />";
$result = mysql_fetch_array(mysql_query("SELECT * FROM SalesLT.Address"));
echo "<pre>";print_r($result);echo"</pre>";
phpinfo();
?>
結果...

(出典: iforce.co.nz )
クエリに を含める利点はdatabase
、クロスサーバー クエリを実行できることです。クエリに接続している限り、指定したdatabase
場所に移動します。primary database
これは、phpのmysql_select_db関数でを選択するよりもはるかに効率的です。