gpt4 book ai didi

php - 未设置 Tinyint 字段

转载 作者:行者123 更新时间:2023-11-30 21:34:45 26 4
gpt4 key购买 nike

我正在尝试将 tinyint 字段的值设置为 1、2 或 3,但未设置。我是 mySQL 的新手,所以我可能在某个地方犯了错误,但我看不到它。

我调用了该函数,并且正在设置所有其他字段,只是不是 tinyint,它一直显示为 0。

 $this->db->update('jobattachment', ['redline' => $tid], ['id' => $attachmentid], ['editing' => '2']);

我尝试删除 2 周围的引号并设置一个变量并执行 ['editing'] => $editingLevel,但没有任何效果。

更新代码:

public function update($table = '', $set = NULL, $where = NULL, $limit = NULL)
{
// Combine any cached components with the current statements
$this->_merge_cache();

if ($set !== NULL)
{
$this->set($set);
}

if ($this->_validate_update($table) === FALSE)
{
return FALSE;
}

if ($where !== NULL)
{
$this->where($where);
}

if ( ! empty($limit))
{
$this->limit($limit);
}

$sql = $this->_update($this->qb_from[0], $this->qb_set);
$this->_reset_write();
return $this->query($sql);
}

这是限制码:

public function limit($value, $offset = 0)
{
is_null($value) OR $this->qb_limit = (int) $value;
empty($offset) OR $this->qb_offset = (int) $offset;

return $this;
}

最佳答案

您的 update() 函数有 4 个参数,最后一个参数是可选的限制。当您调用它时,您将传递 4 个参数,但最后一个参数是一个数组 (['editing' => '2'])。我的猜测是 $limit 应该是一个整数,因此您的代码可能会生成类似于 ... LIMIT 5 的内容。

看来你传递参数的方式有问题。

现在,这是通过传递给 update() 的参数设置变量的方式:

$table = jobattachment
$set = ['redline' => $tid]
$where = ['id' => $attachmentid]
$limit = ['editing' => '2']

我的猜测是所有最后 3 个都应该在 $set 中 - 您正在传递 3 个列名,每个都有一个要保存的新值。

同样,我们看不到您的实际 set() 代码,但它可能需要一个键/值对数组。所以你会像这样调用 update()(重新格式化以明确你只传递了 2 个参数,而之前是 4 个)

$this->db->update('jobattachment', [
['redline' => $tid],
['id' => $attachmentid],
['editing' => '2']
]);

现在 $set 是一个要保存的多维数据数组。

关于php - 未设置 Tinyint 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54501479/

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