मैं like.php
नामक एक पृष्ठ पर एक jQuery AJAX अनुरोध का उपयोग कर रहा हूं जो मेरे डेटाबेस से जुड़ता है और एक पंक्ति डालता है।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.php
कोड है। ऐसा लगता है कि बस एक खाली स्ट्रिंग लौटा है, और 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 कोड ठीक काम करता है, मैंने इसे स्वयं स्वतंत्र रूप से परीक्षण किया है।
किसी भी मदद की बहुत सराहना की है, धन्यवाद।
एसक्यूएल निष्पादित करने से पहले 'var_dump ($ likeMsg) करें; echo $ sql; मर जाओ; 'और देखो कि उन चरों में क्या शामिल है। उसके बाद यदि यह ठीक है, तो SQL आउटपुट को phpMyAdmin में पेस्ट करें और परिणाम जांचें। – hsz