小编Hir*_*hut的帖子

用于检查房间的mysql是否存在具有持续时间的特定日期

我有特定日期的两次检查室.

我的桌子就像这样

我尝试跟随两个查询它运行一些时间权限但是,当我选择上午10:00到下午12:00时错误结果意味着不返回任何记录.

QUERY-1:

SELECT 1 FROM `timetable_details` WHERE (
        ((`td_from` <= '10:00:00') AND (`td_to` > '10:00:00')) 
        OR 
        ((`td_from` < '12:20:00') AND (`td_to` >= '12:20:00'))

    ) AND ((`td_room`='1') AND (`td_date`='2016-01-25'))
Run Code Online (Sandbox Code Playgroud)

QUERY-2:

SELECT 1 FROM `timetable_details` WHERE (
            (`td_from` > '07:00:00') AND (`td_to` < '08:00:00')
      ) AND ((`td_room`='1') AND (`td_date`='2016-01-25'))
Run Code Online (Sandbox Code Playgroud)

我有td_id = 4数字行但不是退货.

提前致谢.

mysql sql mysqli

6
推荐指数
1
解决办法
279
查看次数

Yii2:我可以将数组绑定到 join 中的 IN() 条件吗?

我将尝试下面的查询,但不确定是否可以防止sql注入?

        $status = [1, 2, 3];
        $param = implode(', ', $status);

        $rows = (new \yii\db\Query())
            ->select('*')
            ->from('user')
            ->leftJoin('post', "post.user_id = user.id AND post.some_column = $value AND post.status IN ($param)");
            ->all();
Run Code Online (Sandbox Code Playgroud)

返回预期结果,但可能会发生sql注入。我的 IN 状况如下IN (1, 2, 3)

        $rows = (new \yii\db\Query())
            ->select('*')
            ->from('user')
            ->leftJoin('post', "post.user_id = user.id AND post.some_column = :sid AND post.status IN (:param)", [':param' => $param, ':sid' => $value]);
            ->all();
Run Code Online (Sandbox Code Playgroud)

仅比较数组中的第一个元素,因为它看起来像这样,IN ('1, 2, 3')它由单个字符串组成,不检查数组中的第二个元素,仅对第一个元素起作用。

我参考下面的链接,但不知道如何实现这个条件。

我可以将数组绑定到 IN() 条件吗?

IN() Condition请给出join(PDO/Yii2/mysql)部分如何使用的解决方案On

php mysql sql-injection yii2

4
推荐指数
1
解决办法
3813
查看次数

标签 统计

mysql ×2

mysqli ×1

php ×1

sql ×1

sql-injection ×1

yii2 ×1