gpt4 book ai didi

php - 是否可以将我的连接文件放在根目录中并从子目录中获取数据?

转载 作者:行者123 更新时间:2023-11-29 06:55:46 25 4
gpt4 key购买 nike

每次我都必须将 connection.php 文件与索引文件一起放入我的子文件夹中。我不明白为什么每次都必须将连接文件放入子文件夹中。

我还尝试将连接文件放在根文件夹中,并通过其路径名 /connection.php 包含它,但它不会获取 Mysql 数据。

它不适用于 require''include''include_once''

我在这个主题上找不到太多帮助。难道没有更好的方法吗?

更新:

文件结构

localhost/school/icse/index-icse

我必须将 connect_mysqli.php 放入每个子文件夹中,如下所示

代码:

<?php
include'connect_mysqli.php';
$output = '';
$sql = "SELECT * FROM city WHERE state_id = '".$_POST["stateId"]."' ORDER BY city_name";
$result = mysqli_query($link, $sql);
$output = '<option value="">Select City</option>';
while($row = mysqli_fetch_array($result))
{
$output .= '<option value="'.$row["city_id"].'">'.$row["city_name"].'</option>';
}
echo $output;
?>

谢谢!

conSub 是包含我的连接文件 connect_mysqli.php 的文件夹第二个红色圆圈表明我们现在位于这个子文件夹中。

正常情况下它应该可以工作。我无法弄清楚,问题出在哪里......我已经尝试过

  • include("/conSub/connect_mysqli.php");
  • include("conSub/connect_mysqli.php");
  • include_once("/conSub/connect_mysqli.php");
  • include_once("conSub/connect_mysqli.php");
  • require("/conSub/connect_mysqli.php");
  • require("conSub/connect_mysqli.php");

请检查这是我的数据结构

directory structure of the project

最佳答案

PHP include 将查找当前目录(即被调用脚本的目录),以及 php.ini 中定义为 include_path 的任何内容。您还可以使用 set_include_path() 添加此内容。

因此,在某些时候,您需要在脚本中添加对基本目录的引用:

set_include_path('/var/www/html/school');
require_once("connect_mysqli.php");

require_once("/var/www/html/school/connect_mysqli.php");

两者都不理想,因为您将网站的位置硬编码到代码中 - 它不太可移植!

更好的做法(以及大多数 PHP 框架所做的)是通过单个 index.php 文件运行所有内容。假设您使用 Apache,您可以使用 mod_rewrite 和 .htaccess 文件来使您的 URL 友好,例如:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]

然后你的index.php应该有你的全局包含和一些路由逻辑,如下所示:

require_once "connect_mysqli.php";
if(file_exists($_GET['page'] . '.php') {
require_once ($_GET['page'] . '.php');
}
else {
require_once "error.php";
}

有很多方法可以改善这一点,但它只会给你最基本的信息。

顺便说一句,在您的代码中,通过将原始 $_POST 变量放入数据库查询中,您将面临 SQL 注入(inject)攻击。至少应该逃脱。请阅读:http://php.net/manual/en/security.database.sql-injection.php

关于php - 是否可以将我的连接文件放在根目录中并从子目录中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45736955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com