Tôi đang sử dụng một yêu cầu AJAX jQuery đến một trang có tên là like.php
kết nối với cơ sở dữ liệu của tôi và chèn một hàng. Đây là mã số like.php
:mysql_real_escape_string() chỉ tạo một chuỗi rỗng?
<?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);
?>
Dòng có vấn đề là $likeMsg = mysql_real_escape_string(trim($_POST['likeMsg']));
. Có vẻ như chỉ trả lại một chuỗi rỗng và trong cơ sở dữ liệu của tôi dưới cột like_message
, tất cả những gì tôi thấy là các mục nhập trống. Nếu tôi loại bỏ mysql_real_escape_string()
mặc dù, nó hoạt động tốt.
Đây là mã jQuery của tôi nếu nó trợ giúp.
$('#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('');
}
}
});
Tất cả mã jQuery này hoạt động tốt, tôi đã thử nghiệm bản thân một cách độc lập.
Bất kỳ trợ giúp nào được đánh giá cao, cảm ơn.
Trước khi thực thi SQL, 'var_dump ($ likeMsg); echo $ sql; chết; 'và xem những biến đó chứa gì. Sau đó nếu nó là ok, dán đầu ra SQL vào phpMyAdmin và kiểm tra kết quả. – hsz