반응형
내 데이터베이스에 연결하고 행을 삽입하는 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 코드는 잘 작동하며 독립적으로 테스트했습니다.
어떤 도움이라도 대단히 감사합니다.
해결 방법
$ _ POST [ "likeMsg"]
에 실제로 무언가가 포함되어 있다고 1000 % 확신하십니까?
참고 : mysql_real_escape_string ()을 사용하기 전에 MySQL 연결이 필요합니다. 그렇지 않으면 E_WARNING 수준의 오류가 생성되고 FALSE가 반환됩니다. link_identifier가 정의되지 않은 경우 마지막 MySQL 연결이 사용됩니다.
연결이 열려 있기 때문에 여기에서는 그렇지 않은 것 같습니다. 이상한.
참조 페이지 https://stackoverflow.com/questions/3005135
반응형
'MySql' 카테고리의 다른 글
MySQL 신용 카드 정보를 데이터베이스에 저장하는 모범 사례 (0) | 2020.11.20 |
---|---|
MySQL Workbench에서 세미콜론이 필요하다고 말하는 이유는 무엇입니까? (0) | 2020.11.20 |
MySQL PDO 설치-pdo_mysql 활성화 (0) | 2020.11.20 |
MySQL "모든 따옴표 앞에 슬래시"문제 (0) | 2020.11.20 |
MySQL Yii2에서 원시 SQL 쿼리를 수행합니까? (0) | 2020.11.20 |
댓글