gpt4 book ai didi

php - mysql_real_escape_string() 只是创建一个空字符串?

转载 作者:IT王子 更新时间:2023-10-28 23:45:15 25 4
gpt4 key购买 nike

我正在对一个名为 like.php 的页面使用 jQuery AJAX 请求,该页面连接到我的数据库并插入一行。这是 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);

?>

有问题的行是 $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 代码都可以正常工作,我自己独立测试过。

非常感谢任何帮助,谢谢。

最佳答案

您是否 1000% 确定 $_POST["likeMsg"] 确实包含某些内容?

至于 mysql_real_escape_string() 返回一个空值,manual说只有一种情况会发生这种情况:

Note: A MySQL connection is required before using mysql_real_escape_string() otherwise an error of level E_WARNING is generated, and FALSE is returned. If link_identifier isn't defined, the last MySQL connection is used.

但这里似乎并非如此,因为您确实打开了连接。奇怪。

关于php - mysql_real_escape_string() 只是创建一个空字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3005135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com