在INSERT中无法识别变量但在SELECT中工作

时间:2014-04-13 14:15:56

标签: php mysqli phpmyadmin

基本上我使用变量$ shopid来识别选择了哪个商店。我现在正在尝试创建一个评论系统,以便对每个商店页面进行评论。我的SELECT查询识别$ shopid并允许我使用它,当我尝试在我的INSERT中使用相同的变量时,它只是发布0。

<?php

database connection

session_start();
    if (isset($_SESSION['logged'])){
    $s_userID = $_SESSION['userID'];
    $shopid = $_GET['page_id'];
    $str_shops = '';

        //bring shop data
        mysqli_select_db($db_server, $db_database);
        $query = "SELECT * FROM shops WHERE shopID = '$shopid'"; 
        $result = mysqli_query($db_server, $query); 
            if (!$result) die("Database access failed: " . mysqli_error($db_server)); 
            while($row = mysqli_fetch_array($result)){ 
                $str_shops .= "<div class='result'><strong>" .
                $row['image1'] . "<br><br>" . 
                $row['name']  . "</strong><br><br>" .
                $row['address'] . "<br><br>" . 
                $row['website'] . "<br><br>" . 
                $row['openinghours'] . "<br><div class='justifytext'>" .
                $row['more'] . "<br><br></div><strong>What do they sell?</strong><br><br><div class='justifytext'>" .
                $row['sold'] . "<br><br></div></div>";
            }

        //post comment  
        mysqli_select_db($db_server, $db_database);             
        $comment = $_POST['comment'];
        if ($comment != '') { 
                $query = "INSERT INTO comments (userID,shopID,comment) VALUES ('$s_userID', '$shopid', '$comment')"; 
                mysqli_query($db_server, $query) or 
                die("Insert failed: " . mysqli_error($db_server));  
                $commentmessage = "Thanks for your comment!"; 
        }           

    mysqli_select_db($db_server, $db_database);
    $query = "SELECT * FROM comments";
                $result = mysqli_query($db_server, $query);
                if (!$result) die("Database access failed: " . mysqli_error($db_server)); $i = 0;
                while($row = mysqli_fetch_array($result)){ $i++;
                $str_comments.= "<p><div id='displaycomments'>" . $row['username']. ", " . 
                            $row['commdate'] . ": <br>" .
                        $row['comment'] . "</div>";
        }

}


echo $str_shops;
echo $commentmessage;
echo $str_comments;

mysqli_close($db_server); 
?>

任何人都可以看到为什么这不起作用?我没有收到错误,只是将0添加到我表中的shopID列。

1 个答案:

答案 0 :(得分:0)

我的猜测是你的shopID列是INT数据类型,你在insert语句中传递一个字符串,这就是存储0的原因。再次删除{{{{{ 1}},像这样 -

$shopid