2016-03-15 115 views
0

这是用于向其他用户发送消息的脚本。一切正常,但它不会将输入字段值保存到数据库中。我从1小时看代码,但找不到问题。 'to','subj','msg'来自表格。值不存储到数据库中

<?php 

include 'php/db_connect.php'; 

$name = $_SESSION['name']; 

$to = mysqli_real_escape_string($conn, stripslashes(trim(filter_input(INPUT_POST, 'to')))); 
$sender = $name; 
$subj = mysqli_real_escape_string($conn, stripslashes(trim(filter_input(INPUT_POST, 'subj')))); 
$msg = mysqli_real_escape_string($conn, stripslashes(trim(filter_input(INPUT_POST, 'msg')))); 

$errorTo = ''; 
$errorSubj = ''; 
$errorMsg = ''; 
$errorMain = false; 

if (filter_input_array(INPUT_POST)) { 

    if ($to === $name) { 
     $errorTo = 'Не може да пращаш съобщение на себе си'; 
     $errorMain = true; 
    } 

    $checkTo = "SELECT user_name FROM users WHERE user_name='$to'"; 
    $resultCheck = mysqli_query($conn, $checkTo); 
    $row = mysqli_fetch_array($resultCheck, MYSQLI_ASSOC); 

    if (mysqli_num_rows($resultCheck) == 0) { 
     $errorTo = 'Не съществува такъв потребител'; 
     $errorMain = true; 
    } 

    if (str_word_count($subj) > 20) { 
     $errorSubj = 'Прекалено дълга тема за съобщение'; 
     $errorMain = true; 
    } 

    if (str_word_count($msg) > 300) { 
     $errorSubj = 'Прекалено дълго съобщение'; 
     $errorMain = true; 
    } 

    if (!$errorMain) { 
     $insertInDb = 'INSERT INTO msg (to, sender, subject, msg) VALUES ("$to", "$sender", "$subj", "$msg")'; 
     mysqli_query($conn, $insertInDb); 
    } 
} 


?> 
+5

不要盯着代码,添加基本的错误在querry检查 –

+0

_Everything是确定的,但它不输入字段值保存到database_但那所有这些代码应该这样做。几乎没有_Everything是OK_ – RiggsFolly

+0

好吧,它不会保存它,但你得到什么错误? –

回答

1

您可以将php变量用于单引号中。更改字符串:

$insertInDb = 'INSERT INTO msg (to, sender, subject, msg) 
    VALUES ("$to", "$sender", "$subj", "$msg")'; 

$insertInDb = "INSERT INTO msg (to, sender, subject, msg) 
    VALUES ('$to', '$sender', '$subj', '$msg')"; 
+0

不,没有任何改变。 –

+0

正确答案,谢谢亚历山大 – iJamesPHP