gpt4 book ai didi

PHP与MySQL连接方法

转载 作者:行者123 更新时间:2023-11-29 06:37:31 24 4
gpt4 key购买 nike

我有一个名为 db_conn.php.php 文件,它建立了与数据库的连接。这是文件的代码。

<?php
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "db_name";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: ");
}
else{
}
?>

当我需要从其他文件(例如 login.php 文件)执行一些数据库操作时,我所做的是使用 include_once() 函数提供db_conn.php 的位置作为参数。我对另一个需要数据库访问的 PHP 文件执行相同的操作。我对这种做法/方法有一些疑问。

1. 由于我使用 include_once() 函数并多次调用数据库连接脚本,这样做可以吗?每次都会打开新的连接吗?如果是的话应该如何实现?

2. 如果有人尝试使用 include_once("www.mywebsite.com/php/db_conn.php") 包含来自外部域的文件,他们会能够在我的数据库上执行数据库查询吗?

最佳答案

  1. Is it okay to do this since I use the include_once() function and call the DB connection script more than once? Will it open new connections each time? If yes how should this be implemented?

是的,这很好。由于您使用的是 include_once,PHP 将自动识别出它已包含该文件,跳过第二次调用,并且您将仅获得一个连接。不过,我建议将其更改为 require_once,因为您希望脚本在找不到包含的文件时立即失败。

  1. If someone tries to include the file from an external domain by using include_once("www.mywebsite.com/php/db_conn.php") will they be able to execute DB queries on my DB?

一般来说,不会。任何请求该 URL 的人都只会得到一个空白页面。然而,最佳实践是将这样的库文件放在 Web 服务器的文档根目录之外。例如:

/path/to/project
/public
index.php
/lib
db_conn.php

在这里,您可以将 Web 服务器指向 /path/to/project/public,然后在 index.php 中执行以下操作:

require_once '../lib/db_conn.php';

或者也许:

ini_set('include_path', '/path/to/project/lib');
require_once 'db_conn.php';

这样,您自己的代码可以引用/lib中的PHP文件,但不能直接通过Web服务器请求它们。

关于PHP与MySQL连接方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53142949/

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