gpt4 book ai didi

php - 如何在带有 ajax 的函数中调用 medoo 1.5?

转载 作者:行者123 更新时间:2023-12-04 17:02:01 24 4
gpt4 key购买 nike

第一个问题在这里。我想用ajax调用一个php函数。在函数内部,我有一个来自命名空间上的库的类。

我一直在用medoo在 php 中使用 0.9 版内部函数,一切正常。我也对 ajax 调用使用相同的函数。

在我的 function.php 文件中,我有:

//if called from js with ajax I use a var in the link to know for ex. variable_from_js=1
if(isset($_GET['variable_from_js']){
$response = my_function();
echo $response;//i catch the response with js then
exit;
}

//my function
function my_function(){
$a = new Medoo(DB_NAME);//DB_NAME is a global
...
}

Medoo 在 1.2 以上的版本中使用命名空间,还有很多其他的库。当我直接调用 my_function() 时,我使用:
require 'Medoo.php';
require 'function.php';
use Medoo\Medoo;
echo my_function();

一切都很好。现在,如果我调用相同的 ajax 调用,我会收到内部服务器错误,因为找不到类 Medoo。

我不能使用代码:
use Medoo\Medoo;

由于这些东西的局部范围,在 if 语句内部或在函数内部。我应该在全局范围内调用它。但我正在使用 ajax 调用。

我应该在 function.php 中再次写“use”语句还是应该在其他地方做?
是否有解决方案或唯一的解决方案是在调用类(内部函数)时摆脱“use”语句并使用完整的命名空间路径?

最佳答案

你应该只在你的代码中调用一次 Medoo,所以在你的 php 文件的顶部

require 'Medoo.php';
require 'function.php';
use Medoo\Medoo;
$db = new Medoo(DB_NAME);

然后将 medoo 类传递给您的函数,例如
echo my_function($db);

在您的函数中,您可以使用 medoo,例如
function my_function($db){
$value = $db->get('...','...','...');
return $value;
}

希望这可以帮助。

关于php - 如何在带有 ajax 的函数中调用 medoo 1.5?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48876031/

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