ActiveRecord 搜索返回“语法错误或访问冲突”错误

2024-03-19

在我的 Yii 应用程序中,我有一个模型代表siteconfig表并有四列:

  • integer config_id,
  • string key,
  • string value,
  • string update_time.

我使用Gii创建了一个模型(以确保我不会犯任何错误)。我不会在这里发布完整的代码,因为这是 100% 未经我修改的,由 Gii 生成的标准模型代码。由于我的问题与搜索有关,因此我只发布生成代码的重要部分(search()方法):

public function search()
{
    // Warning: Please modify the following code to remove attributes that
    // should not be searched.

    $criteria=new CDbCriteria;

    $criteria->compare('config_id',$this->config_id);
    $criteria->compare('key',$this->key,true);
    $criteria->compare('value',$this->value,true);
    $criteria->compare('update_time',$this->update_time,true);

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
    ));
}

我正在尝试在正常的 Yii ActiveRecord 搜索中使用生成的模型,如下所示:

$etona = new SiteConfigurationRecord();
$crit = new CDbCriteria();
$crit->select = "value";
$crit->condition = "key=:key";
$crit->params = array(":key"=>"sitename");
$etona = $etona->find($crit);

但是,没有得到预期的搜索结果,而是出现了一个奇怪的(对我来说)错误:

CDbCommand 无法执行 SQL 语句:SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 中有错误 句法;检查与您的 MySQL 服务器版本对应的手册 在第 1 行的 'key='sitename' LIMIT 1' 附近使用正确的语法。 执行的 SQL 语句是: SELECT value FROMsiteconfig tWHERE key=:key LIMIT 1

我哪里做错了?


你用过key对于列名,这是一个MySQL 中的保留字 http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html。 Yii 使用表别名 http://www.yiiframework.com/doc/api/1.1/CDbCriteria#alias-detail在查询中,但对于保留字用作列名称的情况不采取任何特别注意。所以,你必须自己处理这个问题。

例如:

$etona = new SiteConfigurationRecord();
$crit = new CDbCriteria();
$crit->select = "value";
$crit->condition = "t.key=:key"; // 't' is default alias
$crit->params = array(":key"=>"sitename");
$etona = $etona->find($crit);

这应该可以解决你的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ActiveRecord 搜索返回“语法错误或访问冲突”错误 的相关文章

随机推荐

  • Android蓝牙UUID连接APP到ANDROID

    我正在构建一个 Android 应用程序 用于跟踪设备上的蓝牙连接 并在超出范围时触发警报 Android 文档要求提供 UUID 才能建立连接 uuid 是用于唯一标识信息的字符串 ID 的通用唯一标识符 UUID 标准化 128 位格式
  • 如何在多个显示器上正确使用 SetDisplayConfig?

    我正在创建一个小程序 它将包含桌面中的所有显示器 扩展模式 或禁用所有辅助显示器 显示器可以连接到 GPU 和集成显卡 该程序适用于Windows 7 因此根据互联网上的信息 我决定使用CCD API 但遇到了SetDisplayConfi
  • 带有空 RHS 的“dcast”[重复]

    这个问题在这里已经有答案了 有没有办法在不首先指定要翻转的变量的情况下翻转我的数据 在我看来 逻辑默认值似乎是组内索引 例如 DT lt data table id rep 6 10 each 3 var rnorm 15 DT id va
  • TypeScript:如何从类型中提取泛型参数?

    假设我有这样的类型React ComponentClass
  • JComboBox 填充枚举变量值

    我有一个JComboBox我用这种方式制作的enum其价值观 JComboBox
  • migrate.exe 忽略绑定重定向

    我正在尝试运行migrate exe申请来自EntityFramework在特定的 DLL 上 该DLL引用了Microsoft Azure KeyVault WebKeynuget 包 当我尝试运行命令时 migrate MyProjec
  • 使用 .htaccess 动态 URL 重写

    我对 htaccess 重写还很陌生 我正在尝试创建规则来动态重写 URL 例如 假设用户输入以下 URL http example com xxx user 2002 它将被重写为 http example com xxx user 20
  • Solr - 如何获取特定格式的搜索结果

    在探索示例时索引维基百科数据 http wiki apache org solr DataImportHandler Example 3a Indexing wikipedia在Solr中 我们如何才能得到预期的结果 即与导入的数据相同 是
  • 斜杠有什么用? [复制]

    这个问题在这里已经有答案了 可能的重复 在 mysql real escape string 之后使用 stripslashes https stackoverflow com questions 11295141 using strips
  • 将我的 sql 查询转换为 crm 中的 queryexpression 或 fetchxml

    我有这个SQL查询我试图获取的位置opportunityId来自机会实体 为谁approvaldocument尚未创建 批准文档是其他实体的名称 我认为 fetchxml 不支持此类查询 我是 crm 新手 我的项目位于crm 4 0版本
  • 如何在 SwiftUI 中显示 HTML 文本

    我的要求是显示文本SwiftUI其中包含HTML标签 我尝试使用的方法WKWebKit Loadhtml效果很好 但是 我需要像这样显示它 人物卡集合 人员卡 姓名 职务 具有 HTML 文本的人员详细信息 例如Hello world 有人
  • 如何在 LIFERAY 中从first.jsp 重定向到second.jsp?

    这怎么办 请帮我解决这个问题 jsp 内部的重定向并不是真正方便的想法 因为下面的 jsp 解析进入渲染阶段 而该阶段的目的是显示内容 另一方面 下面重定向到操作阶段 在这里您可以决定 portlet 接下来应该做什么 阅读本教程以更好地理
  • 更新到 3.0 后 Gradle 构建失败

    我最近将项目的 gradle 版本从 2 14 1 更新到 3 0 从那时起 gradle 构建每次都会失败 并出现以下错误 错误 原因 org gradle api internal tasks DefaultTaskInputs Tas
  • 分组表视图

    我想创建一个如下图所示的表格视图 谁能告诉我一个例子或者说我该怎么做 创建一个 UITableView 并将样式设置为 UITableViewStyleGrouped 您可以通过编程方式或在 IB 中执行此操作 然后您需要 2 个部分 第一
  • 如何卸载Keras?

    我已经使用以下命令安装了 Keras sudo pip install keras 它安装正确并且工作正常 直到我尝试导入应用程序模块 from keras applications vgg16 import VGG16 Using The
  • 如何解决 Spark JDBC 的编码问题?

    我在 Oracle 中有一个表 其中有一些俄语记录 当我使用 Spark JDBC 读取此表时 我收到的数据帧的值不正确 您知道为什么会发生这种情况以及如何解决吗 executes given query using jdbc def ex
  • 将UserTrackingMode 设置为 MKUserTrackingModeFollow 而不更改缩放级别

    在 Apple 文档中设置用户跟踪模式 动画 https developer apple com library ios documentation MapKit Reference MKMapView Class index html a
  • 以 Kotlin 方式获取字符串中包含的子字符串的索引

    我想实现一个函数 它将返回指定字符串中子字符串的索引 现在我用Java风格做了 public fun String indexesOf substr String ignoreCase Boolean true List
  • 使用 SASS 函数自动设置嵌套元素的背景颜色

    我正在制作一个多级导航系统 并希望每个级别的背景颜色变暗 20 因此第 1 级 fff 第 2 级 ccc 第 3 级 999 等等 一定有一种很棒的方法可以使用 SASS 函数动态地自动化这个过程 但我不太明白如何设置该语句 有人能指出我
  • ActiveRecord 搜索返回“语法错误或访问冲突”错误

    在我的 Yii 应用程序中 我有一个模型代表siteconfig表并有四列 integer config id string key string value string update time 我使用Gii创建了一个模型 以确保我不会犯