2016-03-15 186 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