首页 > 解决方案 > 我正在尝试向 mysql 插入一个 php 变量,但是它会自动插入 0 而不是变量的值

问题描述

我正在尝试向 mysql 插入一个 php 变量,但是它会自动插入 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())

标签: phpmysqlinsertsql-insert

解决方案


表单操作出现问题。

<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>

推荐阅读