gpt4 book ai didi

php - 每次使用 PDO 运行查询时是否都必须包含数据库连接器文件?

转载 作者:行者123 更新时间:2023-11-29 14:48:51 25 4
gpt4 key购买 nike

我已将以下内容保存到我的 dbConnect.php 文件中

$host = 'localhost';
$username = 'root';
$pass = 'mypass';

try {
$dbh = new PDO("mysql:host=$host;dbname=horh_new", $username, $pass);
} catch (PDOException $e) {
echo $e->getMessage();
}

将其包含到我的脚本中的最佳方法是什么?现在,我有一个将用户插入数据库的函数,其执行如下操作:

function insertUser($username) {
include("dbConnect.php"); // i'd like to not have to include this each time
$query = $dbh->prepare("INSERT INTO users (username) values (?)");

$query->bindParam(1, $username);
$query->execute();
}

显然,我拥有的功能越多,我必须包含此 dbConnect.php 文件的次数就越多。我是否应该将其包含到一个包含 $username、$host 和 $pass 私有(private)变量的类中(这样在使用传递到函数中的相同变量时就不会发生冲突?

然后将该类包含在脚本的标题中一次,而不是包含在每个函数中?我对 PDO 很陌生,所以我想找出最有效的方法。谢谢。

最佳答案

每次包含该内容时,您都会在该函数的范围内打开一个新连接。只需将其包含在您的前端 Web 文件中,并为每个函数全局设置数据库连接。不要多次包含此文件,否则您将打开更多连接,从而导致不必要的速度减慢。

index.php 示例:

<?php
include("dbConnect.php");
include("somefunctions.php");
// more stuff, front-facing web stuff, using stuff in somefunctions.php

somefunctions.php:

<?php
function doSomething()
{
global $dbh;
$query = $dbh->prepare("INSERT INTO users (username) values (?)");
// etc.
}

关于php - 每次使用 PDO 运行查询时是否都必须包含数据库连接器文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6222492/

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