1

我正在尝试使用 MySQL 构建购物车。运行此代码时,我不断收到此错误“查询为空”。请帮助我尝试了几件事,例如将变量放在字符串中而不是连接它。

<?php ob_start(); ?><?php require_once("../include/membersite_config.php"); ?>
<?php 
    require('../products_reloaded/config.php');
    session_start();

            $user = $_REQUEST['user'];
            $user = mysql_real_escape_string($user);
            $itemNum = $_REQUEST['itemNum'];
            $itemNum = mysql_real_escape_string($itemNum);
            $quantity = $_POST['quantity'];
            $quantity = intval($quantity);
            $CheckForExistence = mysql_query("select * from cart where user = '$user' and p_number = '$itemNum'" );
            $alreadyExistsChecker = mysql_num_rows($CheckForExistence);
            if($alreadyExistsChecker >= 1)
            {
                $quantity +=1;
                echo "this is equal to $alreadyExistsChecker";
            }

            if($alreadyExistsChecker == 0)
            {
                $getQuery = mysql_query("select * from product where p_number = '$itemNum'");


                while($row = mysql_fetch_array($getQuery))
                {
                    $name = $row['p_name'];
                    $image = $row['p_url'];
                    $price = $row['p_price'];
                }
                $name = mysql_real_escape_string($name);
                $image = mysql_real_escape_string($image);
                $price = intval($price);
                $query = mysql_query('insert into cart values('.$user.','.$itemNum.','.$name.', '.$image.','.$quantity.', '.$price.')'); 
                $result = mysql_query($query);
                if (!$result) {
                    print "An error occured: " . mysql_error() . "\n";
                }

            }

            header('http://www.definitionxjm.com/shopping/viewCart.php');



?>
4

2 回答 2

0

你想用这条线实现什么?

$result = mysql_query($query);

只需将其删除并将上面的行更改为

$result = mysql_query('insert into cart values('.$user.','.$itemNum.','.$name.', '.$image.','.$quantity.', '.$price.')'); 

[编辑]

顺便提一句。您忘记了"查询中的(引号),这会导致发生 sql 错误,从而导致$query = false(参见手册)。$query( false) 然后被转换为字符串,导致''(一个空字符串)您传递给它mysql_query并生成“查询为空”-消息,因为它应该是因为您尝试发送一个空查询。

于 2013-05-11T21:37:46.090 回答
-1

这也可能意味着正在考虑的表是空的。当“DELETE FROM table_name where ;”时出现这种情况 用来。在这里,如果表“table_name”没有数据,它不能删除任何东西,因此它会显示一个错误,说明查询为空。

于 2018-02-05T14:51:41.943 回答