使用 fetchColumn 显示记录数
Displaying record count with fetchColumn
我正在尝试检查数据库中 select 的大小。我有一个tableestado
,我想检查这个table是否有记录'TO',如果这个table有这个记录return 1如果不是 return 0。为此我正在尝试使用 fetchColumn()
但总是 return 0。
我不明白为什么因为我的 table 有这条记录所以它应该 return 1.
我该怎么做?
public function isEstadoExist($estado){
$stm = $this->conexao->prepare("SELECT * FROM estado t1 WHERE t1.estado = ?");
$stm->bindParam(1, $estado);
$existe = $stm->fetchColumn();
echo $existe; //always display 0
}
如@Fred -ii- 所说,你必须调用 $stm->execute,而我修改了 SQL。
public function isEstadoExist($estado){
$stm = $this->conexao->prepare("SELECT count(*) as cant FROM estado t1 WHERE t1.estado = ?");
$stm->bindParam(1, $estado);
$stm->execute();
$existe = $stm->fetchColumn();
echo $existe;
}
试试这个
public function isEstadoExist($estado){
$query = sprintf("SELECT * FROM estado t1 WHERE t1.estado = %s", filter_var($estado, FILTER_SANITIZE_STRING));
# Be careful the value of the column "estado" might have different case than that of "$estado"
$stm = $this->conexao->select($query);
return ($stm->rowCount()== 1) ? 1 : 0;
# I prefer "return ($stm->rowCount()) ? true : false;"
}
如果您只是想检查记录是否存在,则无需绑定或从 PDO 语句中获取。
我正在尝试检查数据库中 select 的大小。我有一个tableestado
,我想检查这个table是否有记录'TO',如果这个table有这个记录return 1如果不是 return 0。为此我正在尝试使用 fetchColumn()
但总是 return 0。
我不明白为什么因为我的 table 有这条记录所以它应该 return 1.
我该怎么做?
public function isEstadoExist($estado){
$stm = $this->conexao->prepare("SELECT * FROM estado t1 WHERE t1.estado = ?");
$stm->bindParam(1, $estado);
$existe = $stm->fetchColumn();
echo $existe; //always display 0
}
如@Fred -ii- 所说,你必须调用 $stm->execute,而我修改了 SQL。
public function isEstadoExist($estado){
$stm = $this->conexao->prepare("SELECT count(*) as cant FROM estado t1 WHERE t1.estado = ?");
$stm->bindParam(1, $estado);
$stm->execute();
$existe = $stm->fetchColumn();
echo $existe;
}
试试这个
public function isEstadoExist($estado){
$query = sprintf("SELECT * FROM estado t1 WHERE t1.estado = %s", filter_var($estado, FILTER_SANITIZE_STRING));
# Be careful the value of the column "estado" might have different case than that of "$estado"
$stm = $this->conexao->select($query);
return ($stm->rowCount()== 1) ? 1 : 0;
# I prefer "return ($stm->rowCount()) ? true : false;"
}
如果您只是想检查记录是否存在,则无需绑定或从 PDO 语句中获取。