簡體   English   中英

查詢不會將用戶名插入數據庫

[英]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.

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