验证$ _POST ['date']与SQL Server日期列进行比较

时间:2019-05-16 19:58:30

标签: php sql

我有一些代码,我想从日期与用户选择的日期匹配的数据库中提取代码。 SQL Server端上的列是Date参数。下面是我的代码,我在其中尝试选择一条记录,其中用户估算的日期与数据库中记录中的日期匹配。但是,每当我遇到$ stmt = $ dbh-> query($ sql)行时,我都会出错,我得到错误回叫。 我尝试从下面的代码行中回显$ sql

$sql = "SELECT * FROM tblEmployee WHERE  dtDate = " . $selected_date;

在sql server上我得到 “ 操作符类型冲突:日期与int不兼容”。 下面是我的代码

if(isset($_POST['submit'])){

           try{
                $dbh = new PDO('sghf','','');

                $dbh->setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

                $selected_date = date('Y-m-d', strtotime($_POST['dateFrom']));
                $selected_option= $_POST['iChoiceID'];
                $returnVals = array ();

                $sql = "SELECT * FROM tblEmployee WHERE  dtServed = " . $selected_date;
                //echo $sql;
               $stmt = $dbh->query($sql);


               //$sourceInfo = $stmt->fetch( PDO::FETCH_ASSOC);
                /*
                $returnVals['info'] = array();
                $returnVals['info'] ['txtInfo'] = $sourceInfo ['txtInfo'];
                $returnVals['info'] ['txtName'] = $sourceInfo ['txtName'];
                $returnVals['info'] ['txtOther'] = $sourceInfo ['txtOther'];
                $stmt->closedCursor();
                */


            }catch ( PDOException $e ) {
                echo "error";
    }

我只想知道是否有一种方法可以验证它们是否相同。 预先感谢

1 个答案:

答案 0 :(得分:1)

您需要在日期表达式周围加引号:

WHERE  dtServed = '" . $selected_date . "'" ;