我在我的数据库中尝试检查选择的大小。我有一个表estado
,我想检查这个表是否有记录' TO'如果这个表有这个记录则返回1如果不返回0.要做到这一点我是' m尝试使用fetchColumn()
但总是返回0。
我无法理解为什么因为我的表有这个记录所以它应该返回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
}
答案 0 :(得分:4)
as @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;
}
答案 1 :(得分:2)
试试这个
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语句绑定或获取。