在php中用mysql查询与日期框匹配的记录

vmdwslir  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(290)

我在一个占星术网站上工作,我有一个表单,在我的php代码中提供了这个人的生日。在我的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

我做错什么了?

ztyzrc3y

ztyzrc3y1#

您以错误的方式连接

"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].");"

这个 . 用于连接php中的字符串。必须在关闭字符串后使用(例如:“aaa”。“bbb”=>aaabbb)
ps:您的代码易受sql注入攻击。改用准备好的语句。

相关问题