[英]My query isn't executed while there aren't any errors
我有一個登錄腳本,在其中我還執行查詢以記錄人們何時何地嘗試從何處登錄我的網站。 這小段代碼不返回任何錯誤,並且標頭有效,但是由於某種原因該查詢不起作用。 有人知道我在做什么錯嗎?
if($count==1){
$securityquery = "INSERT INTO security_kk (action,datetime,country,IP,Affected table,comment) VALUES (:action,:datetime,:country,:IP,:Affected_table,:comment)";
$q = $db->prepare($securityquery);
$q->execute(array(':action'=>"Login",
':datetime'=>$datetime,
':country'=>$country,
':IP'=>$_SERVER['REMOTE_ADDR'],
':Affected_table'=>"members",
':comment'=>"Authenticated as ".$myusername));
$_SESSION['username'] = $myusername;
$_SESSION['privileges'] = $row['privileges'];
$_SESSION['email'] = $row['email'];
header("location:index.php");
}
我是PDO的初學者,但是因為沒有錯誤。 我不知道在哪里看。
datetime
是MySQL中的一種數據類型。 將列標識符括起來。 另外,名稱中帶有空格的列標識符必須用打勾號包裹。
$securityquery = "INSERT INTO security_kk (`action`,`datetime`,`country`,`IP`,`Affected table`,`comment`) VALUES (:action,:datetime,:country,:IP,:Affected_table,:meta)";
您的錯誤(或可能是錯誤之一)是
:meta // your query contains this
和
':comment'=>"Authenticated as ".$myusername;
您的數組對於名為:meta
的占位符沒有任何價值
不過,使用錯誤檢查功能檢查錯誤並沒有什么壞處,而不是讓其他人嘗試找出簡單的錯字。
沒有任何錯誤
因為您不檢查它們。
最佳使用方式如下。
$securityquery = "INSERT INTO security_kk (action,[datetime],country,IP,Affected table,comment) VALUES (:action,:datetime,:country,:IP,:Affected_table,:meta)";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.