php - 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
解决方案
我用了
$_SERVER['DOCUMENT_ROOT'] . '/path to my file/'
这解决了问题感谢@aynber
当从另一个文件或类创建同一类的实例时,使用正常的相对路径会产生问题。但是绝对路径有助于解决它。
推荐阅读
- javascript - 在 AJAX 中执行 POST 查询时,在控制台中收到“未定义数据”错误
- javascript - 在一个简单的 jQuery 函数中切换
- sql - sql重复显示所有数据
- xcode - Xcode 11 在 pod 命令上崩溃
- docker - 如何按存储库删除本地 Docker 映像?
- docker - docker-compose 文件中的端口问题
- spring - 同一端点的身份验证和匿名(spring security)
- oracle - 每当文本更改时,oracle 都会进行硬解析
- excel - 创建 Excel 文件时无法关闭工作簿对象
- php - Laravel 路由数据重定向