[英]Query won't insert username into database
所以我有這個查詢:
mysql_query(
"INSERT INTO wall_post (post,username,userip,date_created)
VALUES(
'".checkValues($_REQUEST['value'])."',
'".$_SESSION['user']."',
'".$userip."',
'".strtotime(date("Y-m-d H:i:s"))."'
)"
);
我也嘗試以這種方式進行查詢:
mysql_query(
"INSERT INTO wall_post (post,username,userip,date_created)
VALUES(
'".checkValues($_REQUEST['value'])."',
$_SESSION['user'],
'".$userip."',
'".strtotime(date("Y-m-d H:i:s"))."'
)"
);
插入失敗時,我沒有看到來自數據庫的任何錯誤消息。
它不會將用戶名插入數據庫,但當我回顯$_SESSION['user']
時,它仍會向我顯示其內容,我將不勝感激。
表結構為:
CREATE TABLE wall_post (
p_id int(11) NOT NULL auto_increment,
username varchar(50) NOT NULL,
post varchar(255) NOT NULL,
image varchar(50) NOT NULL,
date_created int(11) NOT NULL,
userip varchar(200) NOT NULL, PRIMARY KEY (p_id)
)
包含 $_SESSION['user'] 的值是 theil,它沒有任何特殊字符,但是如果我將 $_SESSION['user'] 替換為類似 $user = "test"; 的字符串; 它將值“test”插入數據庫
用於插入語句的mysql_query
要么在成功時返回 True,要么在錯誤時返回 False。 如果成功,您必須檢查返回值,如果不成功,則通過mysql_error
獲取錯誤:
$result = mysql_query($sql);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
從那里修復應該很容易。
圖像列設置為 NOT NULL,但您沒有在其中插入任何內容。 我懷疑刪除 NOT NULL 子句,或為列設置默認值可能會解決您的問題。
附加提示。 使用 MYSQLS NOW() 作為日期。 讓數據庫處理那個位:)
只需檢查值是什么,並確保其中沒有特殊字符。
你也可以試試“'.mysql_real_escape_string($_SESSION['user']).'”
問題可能是特殊字符。
從所有評論中嘗試這個
$name = isset($_REQUEST['user'])? $_REQUEST['user']: '';
mysql_query('INSERT INTO wall_post (post,username,userip,date_created) VALUES("'..checkValues($_REQUEST['value']).'", "'.$name.'","'$ipAddress'" ,"'.$timestamp.'")');
從您上面的一條評論中,我了解到,如果您回顯您的查詢,它會顯示為
INSERT INTO wall_post (post,username,userip,date_created)
VALUES('','theil','127.0.0.1','1309975742')
您是否在運行查詢的語句之前執行此回顯? 如果沒有,我會要求您在通話前做回聲,如下所示:
echo "INSERT INTO wall_post (post,username,userip,date_created) VALUES(
'".checkValues($_REQUEST['value'])."',
'".$_SESSION['user']."',
'".$userip."',
'".strtotime(date("Y-m-d H:i:s"))."')";
mysql_query("INSERT INTO wall_post (post,username,userip,date_created) VALUES(
'".checkValues($_REQUEST['value'])."',
'".$_SESSION['user']."',
'".$userip."',
'".strtotime(date("Y-m-d H:i:s"))."')"
);
您的查詢似乎絕對沒問題,應該運行良好。 用戶名可能沒有保存到數據庫中的唯一原因是 `$_SESSION['user'] 為空或不存在。
您是否嘗試過運行此回顯查詢 - INSERT INTO wall_post (post, username, userip, date_created) VALUES('', 'theil', '127.0.0.1', '1309975742')
- 直接進入 MySQL,在提示符或任何您可能正在使用的其他客戶端?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.