2013-08-21 111 views
0

我真的很努力与这件pf php代码,我想要插入一个消息到表中使用从另一个表中获取的数据。下面是我的代码:PHP/MySQL插入不工作

$get_user_sql = "SELECT username FROM members WHERE id = '$member'"; 
$get_user_res = mysqli_query($con, $get_user_sql); 
while($username = mysqli_fetch_assoc($get_user_res)){ 
    $user = $username["username"]; 
}; 

$get_message_sql = "SELECT message FROM posts WHERE id = '1377077348-5922'"; 
$get_message_res = mysqli_query($con, $get_message_sql); 
while($postsmessage = mysqli_fetch_assoc($get_message_res)){ 
    $postmessage = $postsmessage["message"]; 
}; 

$type = "liked"; 
$title = "New Like"; 
$message = "<a href=\"profile.php?member=$user\">$user</a> just liked your post:<br /><i>$postmessage</i>"; 

$insert_note_sql = "INSERT INTO notes (id, sender, recipient, type, title, message, date) VALUES('$id', '$member', '$recipient', '$type', '$title', '$message', '$time')"; 
$insert_note_res = mysqli_query($con, $insert_note_sql); 

我发现,如果我从$消息行删除$ PostMessage的一切工作正常,但是当我再次行添加回去未插入。任何人都可以看到这个原因吗?

+1

mysqli_error()说什么?你是否回应了查询以确保它符合你的期望?你为此做了哪些调试? –

+0

您需要通过'mysqli_real_escape_string()' –

+0

转义您的所有数据查询正在通过JQuery传递,所以我怎样才能回显错误呢? – user2516546

回答

-1

你不是逃避你的价值观,你的一些内容可能包括引号或其他非转义字符。

尝试使用mysqli_real_escape_string

$postmessage = mysqli_real_escape_string($postsmessage); 

你应该把它插入到数据库之前逃脱每个值,阅读更多有关SQL Injections。你的代码有潜在的威胁。

+0

做**不**使用mysql_ *函数,因为它们已被弃用。另外,OP使用mysqli扩展 –

+0

所以它怎么工作得很好$ user – user2516546

+0

看起来你的'$ user'不包含任何引号或其他特殊字符,但它可以,所以你应该逃避每一个值 –