php file \u get \u contents():没有这样的文件或目录

bvk5enib  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(330)

我有一个类,可以在其中自动创建数据库和表(如果不存在数据库)。每当我在本地主机上直接运行这个类时,它都可以正常工作,但是如果我从另一个文件调用它,它就会返回一个错误。数据库创建类

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

ha5z0ras

ha5z0ras1#

我曾经

$_SERVER['DOCUMENT_ROOT'] . '/path to my file/'

这解决了问题谢谢@aynber
当从另一个文件或类创建同一个类的示例时,使用正常的相对路径会产生问题。但绝对路径有助于解决这个问题。

相关问题