2014-05-21 96 views
0

我已经在我的本地主机上成功安装了PEAR和MDB2。 但是,当我试图运行由MDB2给出的示例代码时,我得到错误(在附图中)安装PHP PEAR和MDB2后警告/致命错误要求(MDB2.php)

也安装后多次重新启动Wamp服务器。

错误和警告

Warning: require(MDB2.php) : failed to open stream: No such file or directory in E:\wamp\www\pear_project\examples\example_php5.php on line 8

Fatal error: require() : Failed opening required 'MDB2.php' (include_path='.;C:\php\pear') in E:\wamp\www\pear_project\examples\example_php5.php on line 8

php.ini中是默认期间PEAR安装通过去梨修改。

;***** Added by go-pear 
include_path=".;E:\wamp\bin\php\php5.4.12\pear" 
;***** 

enter image description here

<?php 

/**************************************/ 
/* a nice php5 only show case of MDB2 */ 
/**************************************/ 

require 'MDB2.php'; 

// the database needs to be created manually beforehand 
$dsn = array(
    'phptype' => 'mysql', 
    'username' => 'root', 
# 'phptype' => 'mysql', 
# 'username' => 'root', 
    'password' => '', 
    'hostspec' => 'localhost', 
    'database' => 'driver_test', 
); 
#$dsn = 'sqlite:///:memory:'; 

// create MDB2 instance 
$mdb2 = MDB2::factory($dsn); 
if (MDB2::isError($mdb2)) { 
    die($mdb2->getMessage()); 
} 

// set the default fetchmode 
$mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC); 

$fields = array(
    'id' => array(
     'type'  => 'integer', 
     'unsigned' => true, 
     'autoincrement' => true, 
    ), 
    'somename' => array(
     'type'  => 'text', 
     'length' => 12, 
    ), 
    'somedate' => array(
     'type'  => 'date', 
    ), 
); 
$table = 'sometable'; 

// create a table 
// since we are on php5 we can use the magic __call() method to: 
// - load the manager module: $mdb2->loadModule('Manager', null, true); 
// - redirect the method call to the manager module: $mdb2->manager->createTable('sometable', $fields); 
$mdb2->mgCreateTable($table, $fields); 

$query = "INSERT INTO $table (somename, somedate) VALUES (:name, :date)"; 
// parameters: 
// 1) the query (notice we are using named parameters, but we could also use ? instead 
// 2) types of the placeholders (either keyed numerically in order or by name) 
// 3) MDB2_PREPARE_MANIP denotes a DML statement 
$stmt = $mdb2->prepare($query, array('text', 'date'), MDB2_PREPARE_MANIP); 
if (MDB2::isError($stmt)) { 
    die($stmt->getMessage()); 
} 

// load Date helper class 
MDB2::loadFile('Date'); 

$stmt->execute(array('name' => 'hello', 'date' => MDB2_Date::mdbToday())); 
// get the last inserted id 
echo 'last insert id: '; 
var_dump($mdb2->lastInsertId($table, 'id')); 
$stmt->execute(array('name' => 'world', 'date' => '2005-11-11')); 
// get the last inserted id 
echo 'last insert id: '; 
var_dump($mdb2->lastInsertId($table, 'id')); 

// load Iterator implementations 
MDB2::loadFile('Iterator'); 

$query = 'SELECT * FROM '.$table; 
// parameters: 
// 1) the query 
// 2) true means MDB2 tries to determine the result set type automatically 
// 3) true is the default and means that internally a MDB2_Result instance should be created 
// 4) 'MDB2_BufferedIterator' means the MDB2_Result should be wrapped inside an SeekableIterator 
$result = $mdb2->query($query, true, true, 'MDB2_BufferedIterator'); 

// iterate over the result set 
foreach ($result as $row) { 
    echo 'output row:<br>'; 
    var_dump($row); 
} 

// call drop table, since dropTable is not implemented in our instance 
// but inside the loaded Manager module __call() will find it there and 
// will redirect the call accordingly 
// we could also have done: 
// $mdb2->manager->dropTable($table); or 
// $mdb2->mgDropTable($table); 
$mdb2->dropTable($table);  
?> 
+0

对不起,刚删除不必要的。重启你的网络服务器。您的文件正在查找:。; C:\ php \ pear为您的MDB2.php文件,但位于。; E:\ wamp \ bin \ php \ php5.4.12 \ pear –

回答

0

我已经解决了这个问题。 卸载旧的WAMP并删除剩下的wamp文件夹。 然后新鲜安装WAMP和PEAR。 使用PHP文件夹路径修改环境变量。

有一个在Ë另外的php.ini:\ WAMP \ BIN \ apache的\ Apache2.4.4 \ BIN

修改php.ini与同包括路径

;***** Added by go-pear 
include_path=".;E:\wamp\bin\php\php5.4.12\pear" 
;***** 

安装数据库软件包MDB2 ,

并重新启动服务器。

0

您应该重新启动您的Web服务器时更改为php.ini做,否则将不能生效。

您当前的配置在寻找:include_path='.;C:\php\pear' 然而,系统中安装了此目录中:E:\wamp\bin\php\php5.4.12\pear

重新启动wampp安装完毕后,应该开始工作。

+0

已经尝试过。 –

+0

你确定你修改了正确的php.ini文件吗?使用phpinfo()来找出php.ini文件的位置,并检查包含路径的php.ini文件。它似乎使用:。; C:\ php \ pear作为默认包含路径。无论如何,在E Drive上明确安装wamp时,为什么会在C:\ php \ pear中查找? –