gpt4 book ai didi

php - 从 PHP 函数运行调用

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

我正在使用 php 和 html 构建一个网站,我习惯于从数据库接收数据,又名动态网站,我已经构建了一个 CMS 供我自己使用。我试图使用 php 和函数“简化”接收过程。

我的 Functions.php 看起来像这样:

function get_db($row){
$dsn = "mysql:host=".$GLOBALS["db_host"].";dbname=".$GLOBALS["db_name"];
$dsn = $GLOBALS["dsn"];
try {
$pdo = new PDO($dsn, $GLOBALS["db_user"], $GLOBALS["db_pasw"]);
$stmt = $pdo->prepare("SELECT * FROM lp_sessions");
$stmt->execute();
$row = $stmt->fetchAll();
foreach ($row as $row) {
echo $row['session_id'] . ", ";
}
}
catch(PDOException $e) {
die("Could not connect to the database\n");
}
}

我将在哪里获得如下所示的行内容:$row['row'];我试图这样调用它:下面的代码片段来自index.php

echo get_db($row['session_id']); // Line 22

只是为了显示所有行中的内容。当我运行该代码片段时,我收到错误:

Notice: Undefined variable: row in C:\wamp\www\Wordpress ish\index.php on line 22

我也在使用 PDO 只是为了让你知道:)

非常感谢任何帮助!

问候斯蒂安

编辑:更新了functions.php

function get_db(){
$dsn = "mysql:host=".$GLOBALS["db_host"].";dbname=".$GLOBALS["db_name"];
$dsn = $GLOBALS["dsn"];
try {
$pdo = new PDO($dsn, $GLOBALS["db_user"], $GLOBALS["db_pasw"]);
$stmt = $pdo->prepare("SELECT * FROM lp_sessions");
$stmt->execute();
$rows = $stmt->fetchAll();
foreach ($rows as $row) {
echo $row['session_id'] . ", ";
}
}
catch(PDOException $e) {
die("Could not connect to the database\n");
}
}

最佳答案

该函数不应将值从数据库中回显,而应将它们作为字符串返回。

function get_db(){
$dsn = "mysql:host=".$GLOBALS["db_host"].";dbname=".$GLOBALS["db_name"];
$dsn = $GLOBALS["dsn"];
$result = '';
try {
$pdo = new PDO($dsn, $GLOBALS["db_user"], $GLOBALS["db_pasw"]);
$stmt = $pdo->prepare("SELECT * FROM lp_sessions");
$stmt->execute();
$rows = $stmt->fetchAll();
foreach ($rows as $row) {
$result .= $row['session_id'] . ", ";
}
}
catch(PDOException $e) {
die("Could not connect to the database\n");
}
return $result;
}

然后将其称为:

echo get_db();

函数的另一个选项是将 session ID 作为数组返回:

function get_db(){
$dsn = "mysql:host=".$GLOBALS["db_host"].";dbname=".$GLOBALS["db_name"];
$dsn = $GLOBALS["dsn"];
$result = array();
try {
$pdo = new PDO($dsn, $GLOBALS["db_user"], $GLOBALS["db_pasw"]);
$stmt = $pdo->prepare("SELECT * FROM lp_sessions");
$stmt->execute();
$rows = $stmt->fetchAll();
foreach ($rows as $row) {
$result[] = $row['session_id'];
}
}
catch(PDOException $e) {
die("Could not connect to the database\n");
}
return $result;
}

然后你可以将其用作:

$sessions = get_db(); // $sessions is an array

然后调用者可以使用数组中的值,也许可以将它们用作其他调用中的键,而不仅仅是打印它们。

关于php - 从 PHP 函数运行调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16673905/

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