代码之家  ›  专栏  ›  技术社区  ›  Fuppiz

在PHP中用MYSQL查询与日期框匹配的记录

  •  0
  • Fuppiz  · 技术社区  · 6 年前

    在我的MYSQL数据库中,有一列以yyyy-mm-dd格式保存标志的开始日期。

    这是我目前的代码。

    $vdate = explode("-", $_POST['bDay']);
    //input date
    
    "SELECT `signs`.`bio`, `signs`.`startDate`, date_format(startDate,'%Y-%b-%d')
    FROM `orion`.`signs`
    WHERE (MONTH(startDate) = ."$vdate[1]". AND DAYOFMONTH(startDate) <= ."$vdate[2]".)
    OR (MONTH(startDate) = ."($vdate[1]+1)". AND DAYOFMONTH(startDate) > ."$vdate[2]".);"
    
    $result = mysqli_query($conn, $sql);
    $row = $result->fetch_array(MYSQLI_ASSOC);
    echo $row['bio'];
    

    Parse error: syntax error, unexpected '$vdate' (T_VARIABLE) in C:\Apache24\htdocs\astro\getHoroscope.php on line 17
    

    我做错什么了?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Felippe Duarte    6 年前

    您以错误的方式连接

    "SELECT `signs`.`bio`, `signs`.`startDate`, date_format(startDate,'%Y-%b-%d')
    FROM `orion`.`signs`
    WHERE (MONTH(startDate) = ".$vdate[1]." AND DAYOFMONTH(startDate) <= ".$vdate[2].")
    OR (MONTH(startDate) = ".($vdate[1]+1)." AND DAYOFMONTH(startDate) > ".$vdate[2].");"
    

    .

    PS:您的代码易受SQL注入攻击。使用 prepared statements 相反。