Sql operator"和"和"或"工作不正常

时间:2018-01-30 12:55:02

标签: php mysql phalcon phalcon-orm

当我运行此代码时,布尔andor操作似乎存在问题:

$ne = News::find(['conditions' => 'title_md = "' . htmlspecialchars($_post['title_md']) . '"  OR alias = "'.$item->alias.'" AND id !=  ' . $id])->toArray();

if(count($ne) < 1)内的条件会返回true,但我需要false,因为目前尚未获取ID。

1 个答案:

答案 0 :(得分:0)

以下是使用Phalcon的ORM全部潜力的正确查询。

$ne = News::find([
    'conditions' => '(title_md = :title: OR alias = :alias:) AND id != :id:',
    'bind' => [
        'title' => $_POST['title_md'],
        'alias' => $item->alias,
        'id' => $id,
    ]
])->toArray();

正如上面提到的那些人在绑定参数时必须更加小心以避免SQL注入。更多示例和文档中的方法:https://docs.phalconphp.com/zh/3.2/db-models#binding-parameters