Я пытаюсь вставить переменную php в MySQL, но он автоматически вставляет 0 вместо значения переменной - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь вставить переменную php в mysql, но она автоматически вставляет 0 вместо значения переменной.

    <?php 
    $username_view = $_GET['user'];
    $current_user = getUserIdFromUsername($username_view);
    $current_user_chat = (int)$current_user;

    // echo gettype($current_user_chat);

    echo var_dump($current_user_chat); //echos original value

    if (isset($_POST['send_message_button_btn'])) {
        $message_text_txt=sanitizeString($_POST['send_message_text_txt']);
        $user_logged_in= $_SESSION['user_id'];
        queryMysql("INSERT INTO messages (message_sender_id, message_receiver_id, message_text, messege_date, message_time) VALUES ('$user_logged_in', $current_user_chat, '$message_text_txt', CURDATE(), CURTIME())");
        echo "<script type= 'text/javascript'> alert('sent');</script>";
        header("Location: user_home.php");
    }

?>

Значение переменной $current_user_chat сохраняется как «0». Когда я повторяю, значение var_dump($current_user) печатается как ожидалось.

Функция getUserIdFromUsername($username_view):

<?php
function getUserIdFromUsername($username){
    $result = queryMysql("SELECT user_id FROM users WHERE username ='$username' ");
    $row = getRows($result);
    if($row){
        return $row['user_id'];
    }
    else{
        echo "<script type= text/javascript> alert('No such Users') </script>";
    }
?>

Вот форма:

<form method="post" action="messages.php?user=$username_view" class="chat-form">
   <textarea name="send_message_text_txt"></textarea>
   <button name="send_message_button_btn" type="submit"><i class="fa fa-paper-plane"></i></button>
</form>

Когда отображается запрос SQL, он выглядит так:

INSERT INTO messages (message_sender_id, message_receiver_id, message_text, messege_date, message_time) VALUES ('1', 5, '', CURDATE(), CURTIME())

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Произошла ошибка в действии формы.

<form method="post" action="messages.php?user=$username_view" class="chat-form">
   <textarea name="send_message_text_txt"></textarea>
   <button name="send_message_button_btn" type="submit"><i class="fa fa-paper-plane"></i></button>
</form>

Переменные фактически не передавались. Я повторил параметр вместо того, чтобы записывать его непосредственно в действие формы.

Новый код формы:

<form method="post" action="messages.php?user=<?php echo $username_view ?>" class="chat-form">
    <textarea name="send_message_text_txt"></textarea>
    <button name="send_message_button_btn" type="submit"><i class="fa fa-paper-plane"></i></button>
</form>
0 голосов
/ 17 января 2019

Возможно, столбец message_sender_id является целым числом, и в запросе вы пытаетесь ввести значение с кавычками

...