mysql - 未捕获的 PDOException : SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)

标签 mysql

我遇到了类似的错误。
未捕获的 PDOException:SQLSTATE[21000]:基数违规:1241 操作数应包含 1 列

if ($_POST['submit'] ?? '' == "Log In") {

    $query = "SELECT * FROM member WHERE (email, password) LIKE (:email, :password)";

    $stmt = $link -> prepare($query);
    $stmt -> bindValue(':email', $_POST['loginemail'], PDO::PARAM_STR);
    $stmt -> bindValue(':password', md5(md5($_POST['loginemail']).$_POST['loginpassword']), PDO::PARAM_STR);
    $stmt -> execute();
    $rows = $stmt -> fetchAll();

}

但是这个语句没有错误。

$sql = "SELECT ko_name FROM dogBREEDS WHERE dogBREEDS.ko_name LIKE (:keyword) ORDER BY id ASC LIMIT 0, 10";
$query = $pdo->prepare($sql);
$query->bindParam(':keyword', $keyword, PDO::PARAM_STR);
$query->execute();
$list = $query->fetchAll();

我该如何解决这个问题?和有什么区别??

最佳答案

$query = "SELECT * FROM member WHERE (email, password) LIKE (:email, :password)";

此 sql 的语法不正确。 LIKE (或者看看这里 MySQL LIKE Clause )不能这样使用,请尝试这个;)

$query = "SELECT * FROM member WHERE email LIKE (:email) and password LIKE (:password)";

关于mysql - 未捕获的 PDOException : SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37236235/

相关文章:

php - 向大型 mysql 查询添加过滤器

javascript - 如何在 JSP 中使用 Ajax 保存多条记录

mysql - 计算多次登录的唯一用户数

php - 在线托管时提供的参数不是有效的 MySQL 结果资源错误

mysql - SELECT * FROM 表A,统计表B中匹配特定字段的对应行数

PHP/MySQL - 有时会向表中添加空白条目

mysql - perl mysql解析

mysql - Google Cloud SQL MySQL 第二代并发连接?

mysql - mysql工作台中Info表下的表行表示什么?

mysql - 有什么方法可以在 myisam 中使用 where 条件进行快速不准确的计数(*)?