值不存储到数据库中

时间:2016-03-15 21:40:41

标签: php sql

这是用于向其他用户发送消息的脚本。一切都很好,但它不会将输入字段值保存到数据库中。我在1小时内查看代码,但我无法找到问题。 '到',' 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);
    }
}


?>

1 个答案:

答案 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')";