首页 > 解决方案 > PHP file_get_contents():没有这样的文件或目录

问题描述

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

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_get_contents(database.sql):无法打开流:/var/www/html/portal/dbsetup/DbSetup.php中没有这样的文件或>目录> 14
0PDOException:SQLSTATE [42000]:语法错误或访问冲突: 1065

标签: phpmysql

解决方案


我用了

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

这解决了问题感谢@aynber

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


推荐阅读