いくつかのファイルでコードを再利用する必要があるため、ほとんどすべての場所で提案されているように、データベースに接続するプロセスをDBConfig.phpファイルにオフロードしようとしています。
提案は常に次のように組み立てられます(私の実際のコードを反映するように編集されています):
-------DBConfig.php-------
<?php
$link = mysql_connect('localhost','user','pass');
if (!$link) {
die('Not connected : ' . mysql_error());
}
$db_selected = mysql_select_db('db_name');
if (!$db_selected) {
die ('Can\'t use db_name : ' . mysql_error());
}
?>
-------Parent.php-------
<!DOCTYPE html>
<?php
require_once 'DBConfig.php';
$something = mysql_query("SELECT * FROM `table` LIMIT 0, 30 ");
// This query works fine if the mysql_connect() and
// mysql_select_db() stuff is in this script in place
// of the require_once.
$listofthings = array();
while($temp = mysql_fetch_array($something)){
$listofthings[] = $temp;
}
// Do other things too
?>
しかし、私がやろうとするmysql_fetch_array($something)
と、警告が表示されて失敗しますmysql_fetch_array() expects parameter 1 to be resource, boolean given
。
DBConfig.php
の代わりにの内容を親スクリプトにドロップするだけで、すべてが美しく機能することを覚えておいてくださいrequire 'DBConfig.php';
...
また、print(require 'DBConfig.php'); //- 1
(PHPは1を返し、ファイルの検索とインクルードが正常に行われていることを示します。例5を参照してください)...
何が起こっているのですか、どうすれば修正できますか?Windows 7 x64で実行されているWAMPServer(Apache 2.4.2、PHP 5.4.3)のデフォルト構成を使用しています。