Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查select查询是否返回任何数据?_Php_Mysql_Pdo - Fatal编程技术网

Php 如何检查select查询是否返回任何数据?

Php 如何检查select查询是否返回任何数据?,php,mysql,pdo,Php,Mysql,Pdo,我制作了一个带有投票系统的小型php网站。 我用PDO调用sql,但无法让它工作,以检查一个人不能每天为同一类别投票两次 下面是我的php代码和sql表 <?php header("Expires: Tue, 01 Jan 2000 00:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache,

我制作了一个带有投票系统的小型php网站。 我用PDO调用sql,但无法让它工作,以检查一个人不能每天为同一类别投票两次

下面是我的php代码和sql表

<?php
   header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
   header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
   header("Cache-Control: no-store, no-cache, must-revalidate,max-age=0");
   header("Cache-Control: post-check=0, pre-check=0", false);
   header("Pragma: no-cache");


   session_start();
   $user = $_SESSION['username'];

   try {
      $db = new PDO('mysql:host=localhost;dbname=xxxxxxxx',"xxxxxxxxx", "xxxxxxxxxx");
   }catch (PDOException $e){
      echo $e->getMessage();
   }

   $aantalRijen = $db->query("SELECT gebruiker FROM stem WHERE UPPER(gebruiker) = '$user' AND UPPER(categorie)='dick' AND datum = CURDATE()");


   $sql = "INSERT INTO stem (categorie, naam, commentaar, datum, gebruiker)
   VALUES('dick','$_POST[naam]','$_POST[commentaar]',CURDATE(), '$user')";




   if( $aantalRijen > 0 ) {
     echo nl2br("U heeft al een stem uitgebracht \n");
     echo "<script>setTimeout(\"location.href = 'index.php';\",1500);    </script>";

    }
     else {
       $results = $db->exec($sql);
       echo "Stem succesvol uitgebracht!";
       echo "<script>setTimeout(\"location.href = 'index.php';\",1500);   </script>";

       }

       $results = NULL;
       $aantalRijen = NULL;
       $db = NULL;
?>

检查返回的行数:

$aantalRijen->rowCount() > 0

您可以按位置在单个查询中执行此操作

INSERT INTO stem (categorie, naam, commentaar, datum, gebruiker)
  VALUES('dick','$_POST[naam]','$_POST[commentaar]',CURDATE(), '$user')
 WHERE NOT EXISTS 
  (SELECT * FROM stem WHERE categorie = dick' AND naam = $_POST[naam] AND commentaar = $_POST[commentaar] AND datum = CURDATE() AND gebruiker = $user)

这里我已经为所有条件设置了。

使用
if(count($aantalRijen)>0){
这实际上是一个有效的答案。它纠正了未能执行OP要求的代码。