使用 EasyPHP 我发现了一个恼人的错误,我似乎无法修复。我在互联网上搜索,得到了一些点击,但我从这些博客文章和页面中没有得到任何结果。
PHP 和 Apache 工作正常,但是当我想将 MySQL 与 PEAR(包含在 EasyPHP 中)一起使用并且当我 require("DB.php")
时,我收到此错误:
Warning: require(DB.php) [function.require]: failed to open stream: No such file or directory in G:\Server\EasyPHP-5.3.3\www\tester.php on line 2
Fatal error: require() [function.require]: Failed opening required 'DB.php' (include_path='.;C:\php5\pear') in G:\Server\EasyPHP-5.3.3\www\tester.php on line 2
我的 PHP 脚本看起来像这(它只是一个测试程序):
<?php
require "DB.php";
$db = DB::connect('mysql://root@localhost');
if (DB::isError($db)) { die("Can't connect:" . $db->getMessage()); }
?>
我尝试将 "DB.php"
的路径更改为 EasyPHP 的 "PHP" 文件夹和 "Php\PEAR"
以及各种奇怪的东西,但似乎没有任何作用;我收到相同的错误,但错误消息的第一行路径不同。
根据 此页面错误是由某些 phar 事物未得到 pharred 或类似的东西引起的 - 我不明白其中任何一个,也不明白 中提到的解决方法。 pear.php.net/2009/07/01/php-53-windows-and-pear/" rel="nofollow noreferrer">页面。
解决方法如下:
使用 php -d phar.require_hash=0 go-pear.phar 运行分布式 phar
如果你问我的话,根本没有任何意义:) 另一种选择是“下载这个非 pharred 版本< /a> go-pear 的东西并使用它。”开始有道理了,但是我该怎么处理梨子这个东西呢?
我尝试了第一个解决方法,尽管我不太理解它。我打开 CMD,它显示:默认情况下 C:\Users\Lasse>
(Lasse 是我的名字)
我尝试打开包含 go-pear.phar 的文件夹。结果是:
C:\Users\Lasse>cd G:\Server\EasyPHP-5.3.3\php\PEAR //*hit enter*
C:\Users\Lasse> //this was shown, typed content of the line below this
C:\Users\Lasse>php -d phar.require_hash=0 go-pear.phar //*hit enter*
'php' was not recogninzed as an intern or extern command, a program or a batchfile.
C:\Users\Lasse>
我无法编辑 C:\Users\Lasse>
中 >
前面的内容。每次我输入一个不返回错误的命令(即上面示例的第一行)时,都会显示一个双换行符,后跟默认的 C:\Users\Lasse>
。
这可能会让你们中的许多人感到惊讶,但当谈到数据库和 PEAR 时,我完全是一个菜鸟(自嘲的高五)。另外,我刚刚安装了 EasyPHP,所以请不要太苛刻。
另外...根据phpMyAdmin(也包含在EasyPHP中),我的MySQL版本是5.x(x的意思是我不记得了)。这是否意味着我必须使用'mysqli://root@localhost'
?
Using EasyPHP I've discovered an annoying error I can't seem to fix. I searched the internet, got a few hits, but I gained nothing from these blog posts and pages.
PHP and Apache works fine, but when I want to use MySQL with PEAR (which is included in EasyPHP) and when I require("DB.php")
I get this error:
Warning: require(DB.php) [function.require]: failed to open stream: No such file or directory in G:\Server\EasyPHP-5.3.3\www\tester.php on line 2
Fatal error: require() [function.require]: Failed opening required 'DB.php' (include_path='.;C:\php5\pear') in G:\Server\EasyPHP-5.3.3\www\tester.php on line 2
My PHP script looks like this (it's just a tester):
<?php
require "DB.php";
$db = DB::connect('mysql://root@localhost');
if (DB::isError($db)) { die("Can't connect:" . $db->getMessage()); }
?>
I have tried changing the path of "DB.php"
to the "PHP"-folder of EasyPHP and to "Php\PEAR"
and all sorts of weird stuff but nothing seems to work; I get the same error but with a different path in the first line of the error message.
According to this page this error is caused by some phar thing not getting pharred or something like that - I don't understand any of this, nor do I understand the workaround mentioned on the page.
The workaround is as follows:
Run the distributed phar with php -d phar.require_hash=0 go-pear.phar
Makes no sense at all, if you ask me :) Another option is to "download this non-pharred version of the go-pear thing and use it." Starting to make sense but what am I then going to do with the go-pear thingy?
I tried the first workaround even though I don't really understand it. I opened CMD and it said: C:\Users\Lasse>
by default (Lasse is my name)
I tried opening the folder containing the go-pear.phar. This is the outcome:
C:\Users\Lasse>cd G:\Server\EasyPHP-5.3.3\php\PEAR //*hit enter*
C:\Users\Lasse> //this was shown, typed content of the line below this
C:\Users\Lasse>php -d phar.require_hash=0 go-pear.phar //*hit enter*
'php' was not recogninzed as an intern or extern command, a program or a batchfile.
C:\Users\Lasse>
I can't edit what is in front of the >
in C:\Users\Lasse>
. Everytime I enter a command which returns no error (i.e. the first line of my above sample) a double linebreak followed by the default C:\Users\Lasse>
is shown.
This might come as a surprise to many of you but I am a complete noob when it comes to databases and PEAR (high-five for self-irony). Also, I just installed EasyPHP so please don't be too harsh.
Also... according to phpMyAdmin (which is also included in EasyPHP) my MySQL version is 5.x (x meaning something I don't remember). Does this mean I have to use 'mysqli://root@localhost'
?
发布评论
评论(1)
在 Windows 中,您无法将 CD 切换到其他驱动器。做:
you cannot cd to a different drive in windows. do: