VIV*_*NWO 10 php mysql ajax mysql-real-escape-string
我正在使用jQuery AJAX请求到一个like.php
连接到我的数据库并插入一行的页面.这是like.php
代码:
<?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);
?>
Run Code Online (Sandbox Code Playgroud)
有问题的路线是$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('');
}
}
});
Run Code Online (Sandbox Code Playgroud)
所有这些jQuery代码都运行正常,我自己独立测试了它.
非常感谢任何帮助,谢谢.
Sli*_*liq 14
由于其他答案并不清楚究竟要做什么,这是我的:
当你这样做
$db_connection = new mysqli($SERVER, $USERNAME, $PASSWORD, $DATABASE);
Run Code Online (Sandbox Code Playgroud)
你需要像这样逃跑:
$newEscapedString = $db_connection->real_escape_string($unescapedString);
Run Code Online (Sandbox Code Playgroud)
注意:因为人们正在低估这个(WTF!?),这里是官方php手册的官方页面,它说明了我发布的内容:real_escape_string @ PHP Manual.
归档时间: |
|
查看次数: |
15980 次 |
最近记录: |