我正在使用一個名爲like.php
的頁面使用jQuery AJAX請求,該頁面連接到我的數據庫並插入一行。這是like.php
代碼:mysql_real_escape_string()只是一個空字符串?
<?php
// Some config stuff
define(DB_HOST, 'localhost');
define(DB_USER, 'root');
define(DB_PASS, '');
define(DB_NAME, 'quicklike');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die('ERROR: ' . mysql_error());
$sel = mysql_select_db(DB_NAME, $link) or die('ERROR: ' . mysql_error());
$likeMsg = mysql_real_escape_string(trim($_POST['likeMsg']));
$timeStamp = time();
if(empty($likeMsg))
die('ERROR: Message is empty');
$sql = "INSERT INTO `likes` (like_message, timestamp)
VALUES ('$likeMsg', $timeStamp)";
$result = mysql_query($sql, $link) or die('ERROR: ' . mysql_error());
echo mysql_insert_id();
mysql_close($link);
?>
有問題的線路是$likeMsg = mysql_real_escape_string(trim($_POST['likeMsg']));
。它似乎只是返回一個空字符串,並在我的數據庫下的like_message
列所有我看到的是空白條目。如果我刪除mysql_real_escape_string()
雖然,它工作正常。
這是我的jQuery代碼,如果有幫助。
$('#like').bind('keydown', function(e) {
if(e.keyCode == 13) {
var likeMessage = $('#changer p').html();
if(likeMessage) {
$.ajax({
cache: false,
url: 'like.php',
type: 'POST',
data: { likeMsg: likeMessage },
success: function(data) {
$('#like').unbind();
writeLikeButton(data);
}
});
} else {
$('#button_container').html('');
}
}
});
所有這jQuery代碼工作正常,我已經獨立測試它自己。
任何幫助非常感謝,謝謝。
在執行SQL之前,執行'var_dump($ likeMsg); echo $ sql;死;看看這些變量包含什麼。之後,如果可以,將SQL輸出粘貼到phpMyAdmin並檢查結果。 – hsz 2010-06-09 11:03:41