在代码点火器中更新而不更新记录

时间:2018-12-21 08:38:45

标签: sql-server codeigniter sql-update

$data = array('lngCount' => 'lngCount + 1');
$this->default->where('strYear', date("Y"));
$query = $this->default->update('tblVisitorCounter', $data);
echo $this->default->last_query();
print_r($query);die();

我在代码点火器中具有以上内容。它不会更新数据库中的记录。我正在使用mssql。它显示了

  

更新“ tblVisitorCounter”设置“ lngCount” ='lngCount + 1'在“ strYear” ='2018'

当我直接在Microsoft SQL Server Management Studio中使用它时,它已正确更新。

我的CI更新有什么问题?

3 个答案:

答案 0 :(得分:1)

我在这里看到2个问题:

第一

$query = $this->default->update('tblVisitorCounter', $data);

我想您想使用默认的数据库配置。

,并具有以下数据库配置:

$db['default'] = array(
        'dsn'   => '',
        'hostname' => 'localhost',
        'username' => 'root',
        'password' => '',
        'database' => 'database_name'
        // etc.
);

然后您应该将数据库加载到某个地方,例如您的控制器使用$this->load->database();,并使用$this->db->

调用数据库

注意::显然,您可以使用$default['your_config_option']=array(),然后像调用数据库一样。这只是一种意见,但是正如CI手册上面的示例所写,使用$this->default->可能会使一些新用户感到困惑。

请参见CI database configurationconnecting to your database

秒:

代码的第一行

$data = array('lngCount' => 'lngCount + 1');

创建一个关联了 string 值的数组,该值可以正确反映在消息中

  

更新“ tblVisitorCounter”设置“ lngCount” ='lngCount +1'在哪里   “ strYear” ='2018'

为了递增,您需要使用$this->db->set()来递增字段值,并从字符串+ 1中获取set(),并将$this->load->database(); $this->db->set('lngCount', 'lngCount+1', FALSE); $this->db->where('strYear', date("Y"); $query = $this->db->update('tblVisitorCounter'); 的第三个参数设置为false,这将防止数据无法转义,因此字段增加。参见updating data

然后您可以像这样轻松地更新数据库:

Quaternion goalRotation = Quaternion.Euler(0f,0f,0f); // or Quaternion.identity

答案 1 :(得分:0)

您可以尝试解决此问题的方法:

$this->db->set('lngCount', 'lngCount+1', FALSE);
$this->db->where('strYear', date("Y");
$query = $this->db->update('tblVisitorCounter');

echo $this->db->last_query();
print_r($query);die();

我希望它将对您有帮助。

答案 2 :(得分:0)

   double getDistance(struct Point a, struct Point b)
{
    double distance;
    distance = sqrt((a.x - b.x) * (a.x - b.x) + (a.y-b.y) * (a.y-b.y));
    return distance;
}