-1

遇到非数值

在第 51 行表示这一行它向我显示错误非数字值

->update('purchase',array('item_qty'=>'item_qty'+$item_qty));

function upd_sales($upd_sales)
{
    $item_name=$upd_sales['item_name'];
    $item_qty=$upd_sales['item_qty'];
         $this->db
                ->where('item_code', $item_name)
               ->update('purchase',array('item_qty'=>'item_qty'+$item_qty));
}
4

5 回答 5

0

这不是 JavaScript

array('item_qty'=>'item_qty'+$item_qty)

如果你试图与+那是一致的。否则添加字符串没有多大意义。也许你想要这个

array('item_qty'=>'item_qty'.$item_qty)

带点.

或者,也许您只需要它的价值。

array('item_qty'=>$item_qty)

这更有可能是因为 PHP 不关心变量类型,但是数据库可能会并且你的错误说NON-Numeric所以 concat 总是会给你一个类型为非数字的字符串。

于 2018-08-13T10:46:02.063 回答
0

你正在做字符串+数字而不是数学运算

正好在这条线上->update('purchase',array('item_qty'=>'item_qty'+$item_qty));

    function upd_sales($upd_sales)
    {
        $item_name=$upd_sales['item_name'];
        $item_qty=$upd_sales['item_qty'];
             $this->db


        ->where('item_code', $item_name)
               ->update('purchase',array('item_qty'=>$item_qty));
}
于 2018-08-13T10:46:16.757 回答
0
function upd_sales($upd_sales)
{
    $item_name=$upd_sales['item_name'];
    $item_qty=$upd_sales['item_qty'];
         $this->db
                ->where('item_code', $item_name)
                ->update('purchase',array('item_qty'=>'item_qty'+$item_qty)); //'item_qty is string where as $item_qty in number
}

那是因为您正在尝试获取字符串和数字的总和。

将您的代码更改为

function upd_sales($upd_sales)
{
    $item_name=$upd_sales['item_name'];
    $item_qty=$upd_sales['item_qty'];
         $this->db
                ->where('item_code', $item_name)
                ->update('purchase',array('item_qty'=> $item_qty));
}
于 2018-08-13T10:47:12.810 回答
0

试试这种方式,需要在mysql更新项目数量中写一个方式

function upd_sales($upd_sales)
{
    $item_name=$upd_sales['item_name'];
    $item_qty=$upd_sales['item_qty'];
    $this->db->where('item_code', $item_name)
       ->set('item_qty', 'item_qty+'.$item_qty, FALSE);
       ->update('purchase');
}
于 2018-08-13T10:50:50.560 回答
0

case $competitor1 : // 竞争对手 1 获胜 $result = $resultwin1;

            $won1 = get_post_meta($competitor1, 'won', true);
            update_post_meta($competitor1, 'won', $won1 + 1);
            wps_update_history ( $competitor1, 'won', '', $lastIP );
            update_post_meta($competitor1, 'lasttimestampbattle', current_time( "timestamp" ) );

            $lost2 = get_post_meta($competitor2, 'lost', true);
            update_post_meta($competitor2, 'lost', $lost2 + 1);
            wps_update_history ( $competitor2, 'lost', '', $lastIP );

            if ($haswon != "") {
              // get actual post title
              $postdata = get_post($competitor1);
              if ( strlen ( $postdata->post_title ) > 0 )
                $result = $postdata->post_title . " " . $haswon;
            }
            break;
于 2019-07-31T04:31:11.520 回答