- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取我的 yii 应用程序的时间范围。
这是我的模型:
public function timeRange($attribute, $params) {
$criteria = new CDbCriteria;
$criteria->addCondition(
"WHERE ('jam_keluar' > '{$this->jam_masuk}' OR 'jam_masuk' < '{$this->jam_keluar}')".
"OR ('jam_masuk' < '{$this->jam_keluar}' AND 'jam_keluar' > '{$this->jam_keluar}')"
);
$record = self::model()->exists($criteria);
if(!empty($record)) {
$this->addError('jd_id', 'Item already exists within range.');
return false;
}
}
但我收到以下错误:
CDbCommand failed to execute the SQL statement: SQLSTATE[42000]: Syntax error or access violation: 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 'WHERE ('jam_keluar' > 03:00:00' OR 'jam_masuk' < '12:00:00')OR ('jam_masuk' < '1' at line 1. The SQL statement executed was: SELECT 1 FROM `a_jadwal` `t` WHERE WHERE ('jam_keluar' > 03:00:00' OR 'jam_masuk' < '12:00:00')OR ('jam_masuk' < '12:00:00' AND 'jam_keluar' > '12:00:00') LIMIT 1
有人吗?
最佳答案
您需要从 addCondition 中删除“WHERE”,因为 addCondition 会为您处理该问题。还可以用引号对所有值进行转义,但不要在列名称两边加上引号。
您应该使用 CDbCriteria::compare 或至少使用带有参数的 addCondition 以避免 SQL 注入(inject):
// Use the solution with CDbCriteria::addCondition
$criteria->addCondition(
"WHERE (jam_keluar > :jam_masuk OR jam_masuk < :jam_keluar)".
"OR (jam_masuk < :jam_keluar AND jam_keluar > :jam_keluar)",
array(
':jam_masuk' => $this->jam_masuk,
':jam_keluar' => $this->jam_keluar
)
);
// Or use the solution with CDbCriteria::compare
$criteria->compare('jam_keluar', '>'.$this->jam_masuk, false);
$criteria->compare('jam_masuk', '<'.$this->jam_keluar, false, 'OR');
$criteria->compare('jam_masuk', '<'.$this->jam_keluar, false, 'OR');
$criteria->compare('jam_keluar', '>'.$this->jam_keluar, false);
关于php - CDbCommand执行SQL语句失败: SQLSTATE[42000]:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23654989/
当我们在 yii 中使用 cdbCommand 时,出现错误 cdb 命令返回了我的表信息,这是一个安全问题,如何解决它? 最佳答案 我想你需要 define('YII_DEBUG', false);
我正在尝试创建用户,但每次单击创建时,都会收到此错误: CDbCommand failed to execute the SQL statement: SQLSTATE[23000]: Integri
我的 Controller 中有以下更新代码。sql 查询执行正确,我可以在后端看到更新的结果。但是在执行它的显示错误时,“CDbCommand 无法执行 SQL 语句”。有没有其他方法可以写这个语句
过去两个小时我一直在尝试从我的查询中获取结果,在我的模型中我有这个 public function getQuotes() { $data
说,我将遵循避免 sql 注入(inject)的良好做法。所以这不好: $query="SELECT id,tag FROM tbl_tags WHERE tag LIKE '%".$t
我可以使用 Yii CDbCommand 将非引用参数绑定(bind)到查询中吗? 我试试这样的 $sql = "INSERT :sourceTable SELECT * FROM :destTabl
我有命令: $night_command = Yii::app()->db->createCommand() ->select('COUNT(d1.id)') ->from('diary1 a
我有一个用于组和成员的 MySQL 数据库。当我要在组模型中插入任何记录时,这里一切都很好,但是当我要在成员模型中插入任何数据时,它会显示这样的错误 CDbCommand failed to exec
当我一段时间没有做任何事情时出现这个错误,我不确定这是否是 Session 问题。 错误信息是: CDbCommand failed to execute the SQL statement: SQL
我正在使用 Yii 的 Yii::app()->db->createCommand() 来构建 SQL 查询。为了查看 Yii 生成的 SQL 代码,我使用了 CDBCommand 的 getText
我正在使用 yii 框架和 mysql。我得到一个错误“CDbCommand 无法执行 SQL 语句: SQLSTATE[22007]: Invalid datetime format: 1292 I
我正在关注 Yii Blog tutorial ,并在进行评论部分时遇到此错误。 CDbCommand failed to execute the SQL statement: SQLSTATE[HY
当我使用sql请求时出现这个错误 $query = "SELECT SUM ".$fields." FROM tbl_report all_months
我希望能够在 OUT 参数中从 mysql 存储过程中获取一些输出,但对于存储过程也通过 select 语句返回结果集的情况,如下所示。 DELIMITER $$ DROP PROCEDURE IF
我是一名优秀的程序员,十分优秀!