插入数据库时​​,PHP MySQL错误

问题描述

| 嘿。当我使用以下功能时:
function ship_order($id,$order_items,$products)
{
    $connection = mysql_open();

    foreach ($order_items as $order_item)
    {
        foreach ($products as $product)
        {
            if ($order_item[\'product_id\'] == $product[\'id\'])
            {
                if ($order_item[\'quantity\'] > $product[\'stock\'])
                {
                    return false;
                }
            }
        }
    }

    $query = \"update SEOrders \" .
         \"set status=\'Shipped\' \" .
         \"where id = $id\";

    $result = mysql_query($query,$connection) or show_error();

    foreach ($order_items as $order_item)
    {
        foreach ($products as $product)
        {
            if ($order_item[\'product_id\'] == $product[\'id\'])
            {
                $new_stock = $product[\'stock\'] - $order_item[\'quantity\'];
                $sold_stock = $product[\'sold_stock\'] + $order_item[\'quantity\'];

                $query = \"update SEProducts \" .
                         \"set sold_stock= \'$sold_stock\',stock=\'$new_stock\' \" .
                         \"where id = $id\";

                $result = mysql_query($query,$connection) or show_error();
            }
        }
    }

    mysql_close($connection) or show_error();
    return true;
}
我偶尔会收到如下错误:
Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/home/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Warning: Cannot modify header information - headers already sent by (output started at /net/export/home/public_html/wp/SE/includes/defs.php:196) in /net/export/home/public_html/wp/SE/ship_order_action.php on line 21
但是现在和之后都不会。我不知道为什么它只偶尔发生。 另外,mysql_open()函数在这里定义:
function mysql_open() 
{
  $connection = @ mysql_connect(HOST,USER,PASSWORD)
      or die(\"Could not connect\");
  mysql_select_db(DATABASE,$connection)
      or show_error();
  return $connection;
}
其中HOST,USEr ...等在单独的文件中定义。 传入的$ id直接来自页面,我已经检查了它。 $ order_items通过传递:
function get_order_items($id)
{
    $connection = mysql_open();
    $query = \"select oi.order_id,p.name,oi.quantity,p.stock \" .
             \"from SEOrder_items as oi join SEProducts p on oi.product_id = p.id \" .
             \"where oi.order_id = $id\";
    $result = mysql_query($query,$connection) or show_error();
    mysql_close($connection) or show_error();

    $order_items = array();
    while ($order_item = mysql_fetch_array($result)) 
    {
        $order_items[] = $order_item;
    }

    return $order_items;
}
$ products通过以下方式传递:
function get_products()
{
    $connection = mysql_open();
    $query = \"SELECT * FROM SEProducts\";
    $query .= \" order by name asc\";
    $result = mysql_query($query,$connection) or show_error();

    $products = array();
    while ($product = mysql_fetch_array($result)) 
    {
        $products[] = $product;
    }

    mysql_close($connection) or show_error();

    return $products;
}
如果相关,数据库如下所示:
create table if not exists SEOrders
(
    id int not null auto_increment primary key,name varchar(20) not null,address varchar(30) not null,status varchar(10) not null,dateShipped timestamp
)ENGINE=INNODB;

create table if not exists SEProducts
(
    id int not null auto_increment primary key,price double not null,name varchar(30) not null,stock int not null,original_stock int not null,sold_stock int not null
)ENGINE=INNODB;

create table if not exists SEOrder_items
(
    id int not null auto_increment primary key,order_id int not null,foreign key (order_id) references SEOrders(id),product_id int not null,foreign key (product_id) references SEProducts(id),quantity int not null
)ENGINE=INNODB;
基本上,我想做的是从当前库存中减去数量,然后将数量添加到已售出的库存中。但是,这并不是很有效,并且时不时会出现上述错误。但是奇怪的是,我会毫无问题地多次调用该函数。 提前致谢, 杰兹     

解决方法

        只需替换此功能,这可能会起作用。
function get_order_items($id)
{
    $connection = mysql_open();
    $query = \"select p.id,oi.order_id,p.name,oi.quantity,p.stock,oi.product_id \" .
             \"from SEOrder_items as oi join SEProducts p on oi.product_id = p.id \" .
             \"where oi.order_id = $id\";
    $result = mysql_query($query,$connection) or show_error();
    mysql_close($connection) or show_error();

    $order_items = array();
    while ($order_item = mysql_fetch_array($result)) 
    {
        $order_items[] = $order_item;
    }

    return $order_items;
}
    ,        您需要在功能
get_order_items
中从数据库中选择字段
product_id
。 (
p.product_id
)。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...