0

I Make Add Values To Mysql And Appear This Error When I Add Value To Mysql : Fatal error: Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column '13' in 'field list'

This My Code

This Code For Display Data:-

if ($do == 'Manage'){

                        $stmt = $con->prepare("SELECT comments.*,items.Name AS Item_Name,users.Username AS `User_Name`
                        From 
                            comments
                        INNER JOIN
                                items
                        ON
                                items.Item_ID = comments.item_id
                        INNER JOIN 
                                users 
                        ON 
                                users.user_id= comments.user_id

                                                ");

                        $stmt->execute();

                        $rows = $stmt->fetchAll();

                        ?>
                        <h1 class='text-center'>Manage Comments</h1>
                        <div class='container mem'>
                        <div class='table-responsive'>
                        <table class='table text-center main-table table-bordered'>
                            <tr>
                                <td>ID</td>
                                <td>Comment</td>
                                <td>Item Name</td>
                                <td>User Name</d>
                                <td>Added Date</td>
                                <td>Control</td>
                            </tr>
                            <?php

                            foreach($rows as $row){

                                echo "<tr>";
                                    echo '<td>' . $row['c_id'] . '</td>';
                                    echo '<td>' . $row['comment'] . '</td>';
                                    echo '<td>' . $row['Item_Name'] . '</td>';
                                    echo '<td>' . $row['User_Name'] . '</td>';
                                    echo '<td>' . $row['comment_date'] . '</td>';
                                    echo "<td>
                                        <a href='comment.php?do=Edit&c_id=" . $row['c_id'] . " 'class='btn btn-success'><i class='fa fa-edit' ></i> Edit</a>
                                        <a href='comment.php?do=Delete&c_id=" . $row['c_id'] . " ' class='btn btn-danger confirm'><i class='fa fa-close'></i> Delete</a>";
                                        if($row['status'] == 0){
                                            
                                            echo "<a href='comment.php?do=Approve&c_id=" . $row['c_id'] . " ' class='btn btn-info activate'><i class='fa fa-check'></i> Activate</a>";

                                        }
                                    echo "</td>";
                                echo "</tr>";
                            }
                            ?>
                        </table>
                        <a href="comment.php?do=Add" class='btn btn-primary'><i class='fa fa-plus'></i> New Comments</a>
                        </div>
                        </div>

                        <?php

This Code For Write Data That Will Sent To Mysql :-

        }elseif($do =='Add'){
                ?>
                <h1 class='text-center'>Add comments</h1>

                <div class='containter'>
                    <form class='form-horizontal' action='?do=Insert' method='POST'>
                        <!--Start Comment Field-->
                        <div class='form-group form-group-lg'>
                            <label class='col-md-offset-1 col-sm-2 control-label'>Comment</label>
                            <div class='col-sm-10 col-md-6' >
                                <textarea class='form-control' name='comment'></textarea>
                            </div>
                        </div>
                        <!--End Comment Field-->
                        <!--Start Member Field-->
                        <div class='form-group form-group-lg'>
                            <label class='col-md-offset-1 col-sm-2 control-label'>Member</label>
                            <div class='col-sm-10 col-md-6' >
                                <select class='form-control' name='member'>
                                    <option value='0'> .... </option>
                                    <?php

                                    $stmt = $con->prepare('SELECT  * FROM users');
                                    $stmt->execute();
                                    $users = $stmt->fetchAll();
                                    foreach ($users as $user){
                                        echo '<option value = " '. $user['User_id'] . ' ">' . $user['Username'] . '</option>';
                                    }

                                    ?>
                                </select>
                            </div>
                        </div>
                        <!--End Member Field-->
                        <!--Start Categoreise Field-->
                        <div class='form-group form-group-lg'>
                            <label class='col-md-offset-1 col-sm-2 control-label'>Items</label>
                            <div class='col-sm-10 col-md-6' >
                                <select class='form-control' name='item'>
                                    <option value='0'> .... </option>
                                    <?php

                                    $stmt = $con->prepare('SELECT  * FROM items');
                                    $stmt->execute();
                                    $users = $stmt->fetchAll();
                                    foreach ($users as $user){
                                        echo '<option value = " '. $user['Item_ID'] . ' ">' . $user['Name'] . '</option>';
                                    }

                                    ?>
                                </select>
                            </div>
                        </div>
                        <!--End Categoreise Field-->
                        <!--Start Submit Field-->
                        <div class='form-group form-group-lg'>
                            <div class='col-md-offset-3 col-sm-offset-2 col-md-6 col-sm-10 '>
                                <input type='submit' value='Update' class='btn btn-primary btn-lg'>
                            </div>
                        </div>
                        <!--End Submit Field-->
                    </form>
                </div>
                <?php 

Finlly This Code For Insert Data To Mysql:-

        }elseif ($do =='Insert'){ 

            if($_SERVER['REQUEST_METHOD']=='POST'){
                
                echo "<h1 class='text-center'>Insert Member</h1>";
                echo "<div class='container'>";
            
                $n_member   = $_POST['member'];
                $n_item     = $_POST['item'];
                $comment    = $_POST['comment'];

                $stmt = $con->prepare("INSERT INTO 
                                        
                                        comments(comment,item_id,`user_id`) 
                                        VALUES(:comment,:item_id,`:user_id`)");
                $stmt->execute(array(
                    
                    'comment' => $comment,
                    'item_id' => $n_item,
                    'user_id' => $n_member
                ));
                $theMsg = "<div class='alert alert-success'>" . $stmt->rowCount() . 'Record Update' .'</div>';
                redirectHome($theMsg,'back');
            } else{
                        $theMsg = '<div class="alert alert-danger"> Sorry You Cant Browse This Page Directly</div' ;
                        redirectHome($theMsg);
                    }
                    echo "</div>";
R_isa
  • 1
  • 2
    Why do you have backticks around `:user_id`? – MatBailie Aug 27 '21 at 21:26
  • ^ very much this. Also, you only need the overhead of prepared statements if you are binding parameters. When printing variables into a html, it is a good idea to html encode them. – mickmackusa Aug 27 '21 at 21:34

0 Answers0