簡體   English   中英

沒有任何錯誤時不會執行我的查詢

[英]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的占位符沒有任何價值

不過,使用錯誤檢查功能檢查錯誤並沒有什么壞處,而不是讓其他人嘗試找出簡單的錯字。

沒有任何錯誤

因為您不檢查它們。

  1. DateTime是mysql的數據類型。
  2. 檢查您受影響的表的列名-列名中沒有空格

最佳使用方式如下。

$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM