gpt4 book ai didi

php - 如果 where 子句是零整数,为什么 sql 查询返回一个值?

转载 作者:行者123 更新时间:2023-11-29 07:17:31 25 4
gpt4 key购买 nike

我有一个 mysql 字段类型,它的名称是代码,类型是 int(11) 我使用这个 Doctrine dql:

     $dql = "SELECT u.id, u.password, u.lastLoginIp, u.lastLoginDate FROM Entities\User u WHERE u.status = '1' AND (u.code = ?1 OR u.email = :n OR u.secretKey = :n)";
$query = $this->_em->createQuery($dql);
$query->setParameter('n', $this->username);
$query->setParameter(1, (int)$this->username);
$query->setMaxResults(1);
$results = $query->getArrayResult();
print_r($results);

但是无论我作为 $this->username 传递的值是整数还是字符串,它仍然会找到代码字段值为 0 的记录。为什么会发生这种情况?我可能必须添加代码字段是 mysql 中的 UNIQUE 键。

最佳答案

假设你的表是用户您应该将参数设置为您需要的相同次数,例如:

$dql = "SELECT u.id, u.password, u.lastLoginIp, u.lastLoginDate 
FROM User u WHERE u.status = '1' AND (u.code = :n0 OR u.email = :n1 OR u.secretKey = :n2)";
$query = $this->_em->createQuery($dql);
$query->setParameter('n0', $this->username);
$query->setParameter('n1', $this->your_code);
$query->setParameter('n2', $this->your_key);
$query->setMaxResults(1);
$results = $query->getArrayResult();
print_r($results);

关于php - 如果 where 子句是零整数,为什么 sql 查询返回一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58456592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com