我有一个类,可以在其中自动创建数据库和表(如果不存在数据库)。每当我在本地主机上直接运行这个类时,它都可以正常工作,但是如果我从另一个文件调用它,它就会返回一个错误。数据库创建类
class DbSetup
{
public static function setup_db()
{
try {
$connect_server = new PDO("mysql:host=localhost", 'root', 'rammanoj888116' );
$create_default = $connect_server->prepare("CREATE DATABASE manoj");
$create_default->execute();
$connect_server = new PDO("mysql:host=localhost;dbname=manoj", 'root','rammanoj888116' );
$connect_server->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$file = file_get_contents( 'database.sql' );
$create_tables = $connect_server->prepare($file);
$create_tables->execute();
$create_tables->closeCursor();
$file_2 = file_get_contents( 'exam_tables.sql' );
$create_tables_2 = $connect_server->prepare($file_2);
$create_tables_2->execute();
echo "1";
}
catch(Exception $e) {
echo "0";
echo $e;
}
}
}
我按以下方式调用此函数
public function create_db() {
$rv = DbSetup::setup_db();
return $rv;
}
这是返回错误
file\u get\u contents(database.sql):未能打开流:在**/var/www/html/portal/dbsetup/dbsetup.php第14行的/var/www/html/portal/dbsetup/dbsetup.php中没有这样的文件或>目录
0pdoexception:sqlstate[42000]:语法错误或访问冲突:1065
1条答案
按热度按时间ha5z0ras1#
我曾经
这解决了问题谢谢@aynber
当从另一个文件或类创建同一个类的示例时,使用正常的相对路径会产生问题。但绝对路径有助于解决这个问题。