mysql_real_escape_string () просто делает пустую строку?

Я использую запрос Ajax jQuery для названной страницы 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);

?>

Проблематичная строка $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 хорошо работает, я протестировал его сам независимо.

Любая справка значительно ценится, спасибо.

10
задан VIVA LA NWO 9 June 2010 в 10:58
поделиться

2 ответа

Вы на 1000% уверены, что $ _ POST ["likeMsg"] действительно что-то содержит?

Что касается mysql_real_escape_string () , возвращающего пустое значение, руководство сообщает, что это может произойти только в одной ситуации:

Примечание: перед использованием mysql_real_escape_string () требуется соединение с MySQL, в противном случае генерируется ошибка уровня E_WARNING и возвращается FALSE. Если link_identifier не определен, используется последнее соединение MySQL.

Здесь, похоже, дело обстоит не так, поскольку у вас действительно открыто соединение. Странный.

22
ответ дан 3 December 2019 в 13:50
поделиться

Сделайте var_dump $ _POST ['likeMsg'] и var_dump $ likeMsg. Это дает вам информацию о том, что идет не так.

1
ответ дан 3 December 2019 в 13:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: