gpt4 book ai didi

php fluentpdo -> undefined variable : fpdo

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

我对我认为的包含内容感到困惑,我不知道它到底错在哪里。

fluentpdo 的连接文件

    <?php
error_reporting(E_ALL | E_STRICT);
include($_SERVER['DOCUMENT_ROOT'].'/Mark20/libs/FluentPDO/FluentPDO.php');

$pdo = new PDO("mysql:dbname=ummah", "pluto","admin");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
$fpdo = new FluentPDO($pdo);
//~ $software->debug = true;
?>

如果我使用如下方式插入数据:Insert.php

<?php
include '../connect.inc.php';

function inReg(){
try{
$values = array('name' 'xyz', 'pwd' => '1234');
$query = $fpdo->insertInto('users')->values($values)->execute();
echo 'success';
return;
}catch (Exception $e) {
die ('File did not upload: ' . $e->getMessage());
}
}
?>

上面的东西不是问题,它只是在一个 php 文件中。我想做的是使用一个类,如下所示:连接文件相同。

DBInsert.php

<?php

include($_SERVER['DOCUMENT_ROOT'].'/Mark20/bin/connect.inc.php');

class DBInsert {
function Insert($table, $values){
try{
$query = $fpdo->insertInto($table)->values($values)->execute();
return 'success';
}catch (Exception $e) {
die ('File did not upload: ' . $e->getMessage());
}
}
}

?>

现在我正在创建上述类的对象并尝试像这样调用 Insert 函数:测试.php

include($_SERVER['DOCUMENT_ROOT'].'/Mark20/bin/dao/DBInsert.php');

function Signup(){
$values = array('name' => 'xyz', 'pwd' => '1234');
$db = new DBInsert();
echo $db->Insert('users',$values);
}
Signup();
?>

所以当我访问 Test.php 时出现以下错误:

Notice: Undefined variable: fpdo in E:\Program Files\Apache Software Foundation\Apache2.2\htdocs\Mark20\bin\dao\DBInsert.php on line 15

Fatal error: Call to a member function insertInto() on a non-object in E:\Program Files\Apache Software Foundation\Apache2.2\htdocs\Mark20\bin\dao\DBInsert.php on line 15

我是 php 的新手,也不是全新的 :)。因此,非常感谢您提供一点帮助。

感谢和问候阿迪布

最佳答案

默认情况下,全局变量不在函数范围内。你需要做的:

function inReg(){
global $fpdo;
try{
$values = array('name' 'xyz', 'pwd' => '1234');
$query = $fpdo->insertInto('users')->values($values)->execute();
echo 'success';
return;
}catch (Exception $e) {
die ('File did not upload: ' . $e->getMessage());
}
}

或将 $fpdo 作为参数传递给函数。

关于php fluentpdo -> undefined variable : fpdo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20866335/

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