数据插入成功 但uid一直为零

数据插入成功 但uid一直为零

http://img1.sycdn.imooc.com//climg/5d35756c0001fc5d08140172.jpg

http://img1.sycdn.imooc.com//climg/5d3575910001b38a07070900.jpg

换了别的用户名上去uid也是为零  ,http://img1.sycdn.imooc.com//climg/5d3575c50001e67f09070203.jpg

这是为什么呢

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 麦色瑟斯 2019-07-22 17:08:24
<?php
require '../tools.func.php';
require '../db.func.php';

// 1. 接收商品 id
$product_id = intval($_GET['product_id']);
// 2. 接收数量
$quantity = intval($_GET['quantity']);

if (empty($product_id) || empty($quantity)) {
header('location: index.php');
exit;
}

$prefix = getDBPrefix();
$sql = "SELECT id, name, price, code, description
            FROM {$prefix}product WHERE id = '$product_id'";
$product = queryOne($sql);

if(!empty(getSession('username','shop'))){
$uid=getSession('id','shop');



$sql="SELECT id,products,price,quantity,uid FROM {$prefix}cart WHERE uid='$uid'";
$cart=queryOne($sql);
if (!empty($cart)) {
// 更新记录
$products = json_decode($cart['products'], true);
if (array_key_exists($product_id, $products)) {
$products[$product_id]['quantity'] += $quantity;
} else {
$products[$product_id] = ['quantity' => $quantity, 'product' => $product];
}
$products = addslashes(json_encode($products));
$cart_price = $cart['price'] + $quantity * $product['price'];
$cart_quantity = $cart['quantity'] + $quantity;
$sql = "UPDATE {$prefix}cart 
            SET products = '$products', price = '$cart_price', quantity = '$cart_quantity'
            WHERE id = '{$cart['id']}'";
execute($sql);
} else {
// 生成 products, price, quantity, uid, created_at
$products[$product_id] = ['quantity' => $quantity, 'product' => $product];
$price = $product['price'] * $quantity;
$created_at = date('Y-m-d H:i:s');
// 添加新的数据
$products = addslashes(json_encode($products)); // \' \"
$sql = "INSERT INTO {$prefix}cart(products, price, quantity, uid, created_at)
            VALUES('$products', '$price', '$quantity', '$uid', '$created_at')";
execute($sql);
}
header('location: cart.php');

// json [{2: {quantity: 4, product: {id: , price: }}}, {}]
}else{
}


  • 您好,将同学的代码放到源码中测试是可以成功写入uid值的。同学在此处$uid=getSession('id','shop');打印一下$uid值,查看是否能获取到$uid值,另外在插入数据之前打印一下$sql语句,使用sql语句在数据库中测试是否能够插入成功。请检测。
    2019-07-22 17:51:19
  • 提问者 麦色瑟斯 #2
    $uid的值为array(0) { }
    2019-07-22 18:02:10
  • 好帮手慕查理 回复 提问者 麦色瑟斯 #3
    您好,那同学在获取uid时就没有成功,同学要去查看下向session中写入值时哪步操作错误了。祝学习愉快!
    2019-07-22 18:24:54
好帮手慕查理 2019-07-22 17:06:55

您好,在插入数据之前打印一下$uid的值,看$uid是否有值,或者复制粘贴反馈代码。祝学习愉快!

  • 提问者 麦色瑟斯 #1
    <?php require '../tools.func.php'; require '../db.func.php'; // 1. 接收商品 id $product_id = intval($_GET['product_id']); // 2. 接收数量 $quantity = intval($_GET['quantity']); if (empty($product_id) || empty($quantity)) { header('location: index.php'); exit; } $prefix = getDBPrefix(); $sql = "SELECT id, name, price, code, description FROM {$prefix}product WHERE id = '$product_id'"; $product = queryOne($sql); if(!empty(getSession('username','shop'))){ $uid=getSession('id','shop'); $sql="SELECT id,products,price,quantity,uid FROM {$prefix}cart WHERE uid='$uid'"; $cart=queryOne($sql); if (!empty($cart)) { // 更新记录 } else { // 生成 products, price, quantity, uid, created_at $products[$product_id] = ['quantity' => $quantity, 'product' => $product]; $price = $product['price'] * $quantity; $created_at = date('Y-m-d H:i:s'); // 添加新的数据 $products = addslashes(json_encode($products)); // \' \" $sql = "INSERT INTO {$prefix}cart(products, price, quantity, uid, created_at) VALUES('$products', '$price', '$quantity', '$uid', '$created_at')"; execute($sql); } header('location: cart.php'); // json [{2: {quantity: 4, product: {id: , price: }}}, {}] }else{ }
    2019-07-22 17:09:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师