我有3个不同的查询,有些是工作,有些则没有。
我知道pdo select不能与mysql一起使用,为什么这些工作呢?
$q = $dbc -> prepare("SELECT * FROM accounts WHERE id = ?");
$q -> execute(array($user['id']));
echo $q -> rowCount();
返回正确的数据,如果我添加另一个参数,则不会,
$q = $dbc -> prepare("SELECT * FROM accounts WHERE id = ? && age = 12");
$q -> execute(array($user['id']));
echo $q -> rowCount();
它无法返回零,此查询再次起作用并正确显示匹配的行;
$q = $dbc -> prepare("SELECT * FROM accounts WHERE id = ? && username = ? && logCount = -1");
$q -> execute(array($user['id'], $user['username']));
为什么有些工作和其他工作没有?
echo $q -> rowCount();
答案 0 :(得分:1)
根据优质手册,rowCount()仅针对DML查询定义:INSERT
,UPDATE
或DELETE
。该手册指出SELECT
查询并非所有数据库都保证"事实上,MySQL的支持并不可靠。
答案 1 :(得分:-2)
第二个查询失败并出现错误或者无法找到符合WHERE条件的行。 要揭示第一个原因,请将此行添加到连接代码中。
$dbc->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );