我刚刚重新审视了一年前我写的一些代码,这些代码在PHP5.1中运行良好,但现在不能与PHP5.5一起使用,请帮助。
我有一个dbconfig.php文件:
<?php
$dbtype = "mysql";
$dbhost = 'localhost';
$dbuser = 'SmartyUser';
$dbpass = 'pa55';
$dbname = 'test';
$dbtable = 'pagesetup';
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
define( "HOMEPAGE_NUM_ARTICLES", 5 );
define( "DB_DSN", "mysql:host=localhost;dbname=test" );
define( "TEMPLATE_PATH", "CMStemplates" );
ini_set( "display_errors", true );
date_default_timezone_set( "Australia/Brisbane" );
?>
我过去常常包括&#39;它在几个文件中。但是我现在得到了投诉&#34; 注意:已经在第10行的C:\ wamp2 \ www \ SOURCE CODE \ Pottsville \ dbconfig.php中定义了常量HOMEPAGE_NUM_ARTICLES &#34;
如果我include_once
或require_once
我收到投诉&#34; 注意:未定义的变量:dbhost &#34; ...
include( 'dbconfig.php' );
try
{
$this->objMyPDO=new PDO('mysql:host=' . $dbhost . ';dbname=' . $dbname , $dbuser, $dbpass);
}
......有什么想法吗?
答案 0 :(得分:0)
您似乎遇到了范围问题,因此,如果您include
该文件多次失败,那么当您使用其他范围文件时,您include_once
将不会被包含在内。我想如果你继续使用include
并检查config.php
中的常量它会起作用:
<?php
$dbtype = "mysql";
$dbhost = 'localhost';
$dbuser = 'SmartyUser';
$dbpass = 'pa55';
$dbname = 'test';
$dbtable = 'pagesetup';
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
if(!defined("HOMEPAGE_NUM_ARTICLES")) define( "HOMEPAGE_NUM_ARTICLES", 5 );
if(!defined("DB_DSN")) define( "DB_DSN", "mysql:host=localhost;dbname=test" );
if(!defined("TEMPLATE_PATH")) define( "TEMPLATE_PATH", "CMStemplates" );
ini_set( "display_errors", true );
date_default_timezone_set( "Australia/Brisbane" );
?>
希望它有所帮助!
答案 1 :(得分:0)
include_once
和require_once
与过去的php版本相比没有变化。唯一的问题是当你有一个数据库连接文件时,它不能包含一次,必须直接包含它。使用include
或require