【发布时间】:2016-08-16 09:13:59
【问题描述】:
我正在尝试迁移到 PDO。
我想做一个经典的查询来检查行数,在 mysql 中我会做 mysql_num_rows_result 但我在某处读到 PDO 中它不起作用。
所以我尝试了使用以下代码获取列:
global $bdd;
$login = $bdd->query("SELECT
COUNT
FROM spb_clients_acces_compte,
spb_clients_infos_generales
WHERE spb_clients_acces_compte.spb_clients_acces_compte_e_mail = '{$email}'
AND spb_clients_acces_compte.spb_clients_acces_compte_pwd_md5 = '{$pass}'
AND spb_clients_acces_compte.spb_clients_acces_compte_admin = 1");
$reponse = $bdd->fetchColumn();
if ($reponse == 0):
elseif ($reponse == 1):
else:
endif;
var_dump($reponse);
这还给我:
( ! ) 致命错误:在第 20 行调用 C:\wamp\www\spb2016\admin\core\login.php 中未定义的方法 PDO::fetchColumn()
第 20 行是:$reponse = $bdd->fetchColumn();
我尝试了很多事情都没有成功
我们将不胜感激。
【问题讨论】:
-
“我会做 mysql_num_rows_result 但我在某处读到它在 PDO 中不起作用。” - 完全正确。您不能混合使用不同的 API,我们不知道您是否使用相同的 API 进行连接。如果您没有连接到 PDO,那就是个问题。
-
这个
SELECT COUNT如果你想使用那个函数并且你没有一个名为COUNT的列,那么它就是COUNT(col|*) -
连接是
$bdd = new PDO("mysql:host=localhost;dbname=183867brwzl", "root", ""); -
RTFM: php.net/manual/en/pdostatement.fetchcolumn.php
fetchColumn是 PDOStatement 对象的一个方法,这是您从查询调用中得到的。$bdd是 PDO 对象,$login是 PDOStatement。
标签: php mysql pdo mysql-num-rows