gpt4 book ai didi

php - MYSQL 语法错误 - Codeigniter 函数计算成本

转载 作者:行者123 更新时间:2023-11-29 09:00:16 25 4
gpt4 key购买 nike

function stationcost($station1,$station2)
{

$data = array();


$this->db->select('Zone')->from('station_zone')->where('Station', $station1);
$Q = $this->db->get();

$this->db->select('cost')->from('zone_cost')->where('zone', $Q);
$query = $this->db->get();

if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$data = $row->Cost;
return $data;
}
}
}

如果我将 $Q 更改为整数,该函数将正常工作。我还没有添加另一个站来减去差异来计算区域差异

将名称转换为区域$station2 - $station1 = 'calculatedfigure'

然后从 zone_cost 中选择成本,其中 zone = '计算数字';

我的错误消息:

A Database Error Occurred

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3

SELECT `cost` FROM (`zone_cost`) WHERE `zone` =

Filename: models/station_model.php

Line Number: 59

我已经尝试过了

$this->db->select('Zone')->from('station_zone')->where('Station', $station2);
$S2 = $this->db->get();

$this->db->select('Zone')->from('station_zone')->where('Station', $station1);
$S1 = $this->db->get();

$Q = $S2 - $S1;

最佳答案

问题是变量$Q不包含有效值,可能是因为$station1中传递的值在数据库中不存在。我本以为 CI 会至少使用一个空的带引号的字符串来解决这个问题,但显然不会。

在将 $Q 传递给 where() 之前,您需要验证它是否具有合理的值。例如,另一个 num_rows() 检查将告诉您第一个查询是否找到了任何内容。

此外,您需要传递来自 $Q 的字段数据,而不仅仅是对象。因此,在您的情况下,$Q->row()->Zone

关于php - MYSQL 语法错误 - Codeigniter 函数计算成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8839626/

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