嗨我想創建一個小的電子郵件訂閱者腳本來添加電子郵件地址到我的數據庫。我能夠使用不推薦使用的函數(如mysql_connect)正常工作,但是使用mysqli代替它會更好。但由於某種原因,我不能再將電子郵件地址插入到數據庫中,但我可以連接到數據庫,並檢查電子郵件地址是否已經存在。我想知道爲什麼我的INSERT似乎沒有工作。我沒有太多的PHP經驗,謝謝。php mysql連接到數據庫,但不能插入
if (!$link) {
echo "save_failed cannot connect"; //if cant connect show error
return;
}
mysqli_select_db($link,$mydb);
// Clean variables before performing insert
$clean_email = mysqli_real_escape_string($link,$_POST['email']);
$clean_subscriber = mysqli_real_escape_string($link,$_POST['firstname']);
$clean_date = mysqli_real_escape_string($link,$_POST['date']);
$query = "SELECT * FROM EmailList WHERE email = '{$email}'";//check if already in list
$result = mysqli_query($link,$query);
$row_cnt = mysqli_num_rows($result);
if($row_cnt == 0) {
// Perform insert if not in list
$sql = "INSERT INTO EmailList (Email,Name,Date) VALUES
('$clean_email','$clean_subscriber','$clean_date')";
echo "Thank you for Subscribing to my blog!";
} else {
echo "You have subscribed already. Thank you for subscribing";
}
你不是在查詢'$ sql' var ..就像你對select所做的那樣做一個'mysqli_query'。 –
'date'也是一個保留關鍵字,它以ticks(') –
爲單位,應該沒有任何理由事先查詢數據庫以查看電子郵件是否已經存在。只需在電子郵件字段中創建唯一索引並直接轉到插入,在存在重複插入嘗試的情況下處理錯誤。每次運行腳本時,這會爲您節省一次針對數據庫的查詢。您還應該始終檢查數據庫交互中的錯誤 - 連接時,查詢時等。處理這些錯誤情況的代碼將變得非常簡單,而且更容易調試。 –