I am trying to set up a website in php using Apache 2.2 on Windows. I'll note that I did not create the website I am trying to set up. I am running into this issue:
"Warning: include_once(mysqli.class.php) [function.include-once]: failed to open stream: No such file or directory in PATH" which of course leads to: "Fatal error: Class 'MySQLHandler' not found".
I've set up other php websites and have run into this problem before. Normally, I would adjust the include_path in php.ini to wherever the dependency is and the problem would be solved. However, this file "mysqli.class.php" does not seem to exist as a file in the same way other php files do, so I have no idea how to include it. That's where I'm stuck right now. I am not getting any other warnings or errors with the website.
Thanks for any help!
Mysqli.class.php inclusion
Moderator: General Moderators
Re: Mysqli.class.php inclusion
Bump. Still need help! 
Re: Mysqli.class.php inclusion
Are you using an absolute reference to the file?
Re: Mysqli.class.php inclusion
Inside the php files themselves there is an "include" and "mysqli.class.php" is hardcoded with no path. In the php.ini file I am attempting to figure out where that file is so I can add it to the include_path, then the php files would be able to find the class file. I am using absolute includes on the include_path e.g. "c:\php\ext"jackpf wrote:Are you using an absolute reference to the file?
Re: Mysqli.class.php inclusion
Hmm...
You're absolutely sure the file exists?
For example, say your directory structure is
root/
-----/includes/
-----/---------/classes/
If your script was in the document root, and you wanted to include "somefile.php" in includes/classes, this should work:
If you then go to http://yoursite.com/includes/classes/somefile.php, it should exist.
I suggest you do this sort of checking with your file...
Can't really think what else it would be.
You're absolutely sure the file exists?
For example, say your directory structure is
root/
-----/includes/
-----/---------/classes/
If your script was in the document root, and you wanted to include "somefile.php" in includes/classes, this should work:
Code: Select all
include $_SERVER['DOCUMENT_ROOT'].'/includes/classes/somefile.php';I suggest you do this sort of checking with your file...
Can't really think what else it would be.
Re: Mysqli.class.php inclusion
Hello again, I've had more time to look into the error and I've made progress (I am 100% certain the website can access the database properly and pull data)
Here is more error information:
Warning: include_once(mysqli.class.php) [function.include-once]: failed to open stream: No such file or directory in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\includes\db.php on line 3
Warning: include_once() [function.include]: Failed opening 'mysqli.class.php' for inclusion (include_path='c:\php;c:\php\includes;c:\php\ext;c:\php\Program Files\Apache Software Foundation\Apache2.2\htdocs\includes;C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\admin\_kfm\includes\pear;c:\php\Program Files\Apache Software Foundation\Apache2.2\htdocs\includes\config_mdb2.php;C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\admin\_kfm\includes\pear\mdb2\driver;') in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\includes\db.php on line 3
Fatal error: Class 'MySQLHandler' not found in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\includes\db.php on line 7
Here is the db.php file:
<?
session_start();
include_once "mysqli.class.php";
include_once($_SERVER['DOCUMENT_ROOT'].'/includes/site_constants.php');
$DB = new MySQLHandler($DB_DSN['database'],$DB_DSN['username'],$DB_DSN['password'],"localhost", true);
// A string to salt the database for encryption.
// There is a salt and such but I am leaving it out.
function enc_url($url){
return str_replace("/","|",str_replace(" ","+",$url));
}
function denc_url($url){
return str_replace("|","/",$url);
}
function generateNewSalt(){
return substr(md5(uniqid(rand(), true)), 0, 9);
}
function enable_aes() {
global $DB;
$DB->query( "SELECT @password:='".DB_SALT."'" );
}
function disp_date($dateStr, $format){
list($y,$m,$d)=split("[-]",substr($dateStr,0,10));
list($h,$i,$s)=split("[:]",substr($dateStr,11));
return date($format,mktime($h,$i,$s,$m,$d,$y));
}
?>
The line in bold is where the error occurs.
Any more help is appreciated.
Here is more error information:
Warning: include_once(mysqli.class.php) [function.include-once]: failed to open stream: No such file or directory in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\includes\db.php on line 3
Warning: include_once() [function.include]: Failed opening 'mysqli.class.php' for inclusion (include_path='c:\php;c:\php\includes;c:\php\ext;c:\php\Program Files\Apache Software Foundation\Apache2.2\htdocs\includes;C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\admin\_kfm\includes\pear;c:\php\Program Files\Apache Software Foundation\Apache2.2\htdocs\includes\config_mdb2.php;C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\admin\_kfm\includes\pear\mdb2\driver;') in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\includes\db.php on line 3
Fatal error: Class 'MySQLHandler' not found in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\includes\db.php on line 7
Here is the db.php file:
<?
session_start();
include_once "mysqli.class.php";
include_once($_SERVER['DOCUMENT_ROOT'].'/includes/site_constants.php');
$DB = new MySQLHandler($DB_DSN['database'],$DB_DSN['username'],$DB_DSN['password'],"localhost", true);
// A string to salt the database for encryption.
// There is a salt and such but I am leaving it out.
function enc_url($url){
return str_replace("/","|",str_replace(" ","+",$url));
}
function denc_url($url){
return str_replace("|","/",$url);
}
function generateNewSalt(){
return substr(md5(uniqid(rand(), true)), 0, 9);
}
function enable_aes() {
global $DB;
$DB->query( "SELECT @password:='".DB_SALT."'" );
}
function disp_date($dateStr, $format){
list($y,$m,$d)=split("[-]",substr($dateStr,0,10));
list($h,$i,$s)=split("[:]",substr($dateStr,11));
return date($format,mktime($h,$i,$s,$m,$d,$y));
}
?>
The line in bold is where the error occurs.
Any more help is appreciated.
Re: Mysqli.class.php inclusion
I had a problem using mysqli
had to uncomment the line
extension=php_mysqli.dll
in php.ini
so it loads automatically.
had to uncomment the line
extension=php_mysqli.dll
in php.ini
so it loads automatically.