当前位置: 首页 > 知识库问答 >
问题:

带有sql查询的PHP函数不返回值

弓方伟
2023-03-14

我想在php上创建一个函数,它将返回数组中sql查询的值。函数中的sql ode可以工作,我可以显示值。

但是当我想在一个函数中使用它时,它就不起作用了。我的语法中有什么错误?

function frequenz_suchen_datum_zeit($fdatum_von = "2000-01-01", $fdatum_bis = "2020-01-01", $fuhrzeit_von = "00:00:00", $fuhrzeit_bis = "23:59:59") {
$abfrage = $pdo->query("SELECT
                SUM(hg_ger_b) as hg_ger_b,
                SUM(hg_ger_v) as hg_ger_v,
                SUM(hg_zub_b) as hg_zub_b,
                SUM(hg_zub_v) as hg_zub_v,
                SUM(hg_ers_b) as hg_ers_b,
                SUM(hg_ers_v) as hg_ers_v,
                SUM(hg_rep) as hg_rep,
                SUM(pr_ger_b) as pr_ger_b,
                SUM(pr_ger_v) as pr_ger_v,
                SUM(pr_zub_b) as pr_zub_b,
                SUM(pr_zub_v) as pr_zub_v,
                SUM(pr_ers_b) as pr_ers_b,
                SUM(pr_ers_v) as pr_ers_v,
                SUM(pr_rep) as pr_rep,
                SUM(so_ser) as so_ser, 
                SUM(so_mie) as so_mie,
                SUM(so_was) as so_was,
                SUM(so_wer) as so_wer,
                SUM(so_web) as so_web
                FROM frequenz WHERE datum BETWEEN '".$fdatum_von."' AND '".$fdatum_bis."' AND uhrzeit BETWEEN '".$fuhrzeit_von."' AND '".$fuhrzeit_bis."'")->fetch();

return abfrage;
}

$test = frequenz_suchen_datum_zeit();
echo $test [hg_ger_b];


共有1个答案

谭兴学
2023-03-14

null

快速修复丑陋:

在函数的第一行添加:

global $pdo; 

问题:变量的范围。

请紧急查看:https://www.php.net/manual/de/language.variables.scope.php

null

function frequenz_suchen_datum_zeit($fdatum_von = "2000-01-01", $fdatum_bis = "2020-01-01", $fuhrzeit_von = "00:00:00", $fuhrzeit_bis = "23:59:59") {

global $pdo;    
$abfrage = $pdo->query("SELECT
                    SUM(hg_ger_b) as hg_ger_b,
                    SUM(hg_ger_v) as hg_ger_v,
                    SUM(hg_zub_b) as hg_zub_b,
                    SUM(hg_zub_v) as hg_zub_v,
                    SUM(hg_ers_b) as hg_ers_b,
                    SUM(hg_ers_v) as hg_ers_v,
                    SUM(hg_rep) as hg_rep,
                    SUM(pr_ger_b) as pr_ger_b,
                    SUM(pr_ger_v) as pr_ger_v,
                    SUM(pr_zub_b) as pr_zub_b,
                    SUM(pr_zub_v) as pr_zub_v,
                    SUM(pr_ers_b) as pr_ers_b,
                    SUM(pr_ers_v) as pr_ers_v,
                    SUM(pr_rep) as pr_rep,
                    SUM(so_ser) as so_ser, 
                    SUM(so_mie) as so_mie,
                    SUM(so_was) as so_was,
                    SUM(so_wer) as so_wer,
                    SUM(so_web) as so_web
                    FROM frequenz WHERE datum BETWEEN '".$fdatum_von."' AND '".$fdatum_bis."' AND uhrzeit BETWEEN '".$fuhrzeit_von."' AND '".$fuhrzeit_bis."'")->fetch();
    
    return abfrage;
    }
    
    $test = frequenz_suchen_datum_zeit();
    echo $test [hg_ger_b];
 类似资料:
  • SQL用例是否可以显示操作,返回到函数的结果,作为其else条件的结果? //(to_date(r.RENT_RETURN_DATE,'dd-mon-yyyy')-to_date(r.RENT_DUE_DATE,'dd-mon-yyyy')) ----返回一个整数// 当我执行上述查询时,会显示以下错误: 错误报告- SQL错误:ORA-00932:不一致的数据类型:预期CHAR得到编号00932

  • 我如何告诉Panache查询的结果将是而不是? 谢谢你的回答 编辑:回购代码:

  • 问题内容: 我有一个不支持三角函数的SQLite数据库。我想按距离对桌中的一组经纬度进行排序,而不是第二对经纬度对。我熟悉用于按距离对经纬度对进行排序的标准Haversine距离公式。 在这种情况下,我并不特别在意精度,因为我的点之间相隔很远,所以我不介意通过将曲线视为直线来舍入距离。 我的问题是,这种查询是否有公认的公式?记住没有触发功能! 问题答案: 如果您的点彼此之间的距离在合理范围内(即,

  • 问题内容: 我想创建一个使用查询来计算值的函数,但返回值时遇到问题: 简而言之,我的查询是: 我收到一个SQL语法错误。 SQL错误(1064):您的SQL语法有错误; 问题答案: 假设这些都是通用名称(表将不是一个很好的表名),问题是您不能使用==进行比较。您还缺少一些关键语法(DECLARE,SELECT INTO等)。 更改为此: MySQL比较函数和运算符 相关问题:MYSQL中的单等于

  • 我有下面的SQL查询,我在flink工作中使用。< code>mysql_table是使用JDBC连接器创建的,而< code>kafa_source表是从传入的kafka流创建的。 我在两者之间执行时态连接,当我在Flink的sql-client CLI中检查时,运行良好(用< code>flink-faker测试)。内部查询工作得非常好,并且正在打印结果。有人能帮助我找出这个问题吗? 编辑:我

  • 问题内容: 过去,这个网站对我有很大帮助,但现在我迷路了。在此先感谢您的指导。 我有一个包含Binary值的MySQL表,如下例所示。我不能改变桌子。 这是nid的示例值:( 不全部显示,但是所有16个都在那里) 现在,我想创建一个SQL查询来查找该值为true的行的ID。 …不起作用。任何的想法? 解决方案: 以HEX格式获取nid可以 解决问题 。结果是DE46C83E5A50CED70E6A