2014-09-03 64 views
1

我有一個頁面,你可以輸入你的姓名和出生日期,然後你可以搜索不同日子出生的人,它會顯示你不同的人的姓名。但它包括你搜索它們的年份,這是可以的,但如果有一種方法讓我的代碼沒有選擇年,那將會更好。如何在MySQL和PHP中選擇沒有日期的年份?

$result = mysqli_query($con,"SELECT * FROM dob WHERE dob='$dob'"); 

這一塊的工作搜索,但我不希望它包括一年...所以我改成了這樣:

$result = mysqli_query($con,"SELECT * FROM dob WHERE MONTH(Date) = '$month' AND DAY(Date)  = '$day'"); 

當我使用的頁面不包括年(代碼的第二片)我得到這個錯誤:

「警告:mysqli_fetch_array()預計參數1被mysqli_result,在給定的/home/k11adamb/public_html/php/search.php線121上的布爾」

任何人都可以告訴我爲什麼它不起作用或讓我知道如何選擇沒有一年的日期?謝謝。

+1

您使用mysqli的,太棒了!請使用參數化的準備語句,以避免sql注入。變量$ month和$ day的內容是什麼? – VMai 2014-09-03 19:03:21

+1

不應該是「SELECT * FROM dob WHERE MONTH(dob)='$ month'AND DAY(dob)='$ day';'而不是? – VMai 2014-09-03 19:05:17

+0

當使用'mysqli'時,你應該使用參數化查詢和[ bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。 – tadman 2014-09-03 19:06:26

回答

0

根據第一個查詢列的名稱爲dob,所以:

$result = 
    mysqli_query($con, "SELECT * FROM dob WHERE MONTH(dob) = '$month' AND DAY(dob) = '$day'"); 
相關問題