حسام قاسمی
2 سال پیش توسط حسام قاسمی مطرح شد
4 پاسخ

کوئری insert

سلام دوستان. من یک کوئری insert ایجاد کردم که شامل 14 تا فیلد هستش و لی موقع اجرا کردن ایجاد نمیشه تو دیتابیس ولی وقتی که یکی از فیلد هارو از کوئری حذف میکنم ایجاد میشه یعنی در واقع کمتر یا مساوی 13 تا فیلد اجرا میشه اما بیشتر یا مساوی 14 تا فیلد اجرا نمیشه .
ممنون میشم اگر کسی میدونه راهنمایی کنه


ثبت پرسش جدید
میکائیل
تخصص : برنامه نویسی سمت سرور و کلاینت
@FullStack 2 سال پیش مطرح شد
0

سلام وقت بخیر
دوست عزیز بهتر میشد اگه قطعه کد رو هم میزاشتی ببینیم


حسام قاسمی
@hesam64 2 سال پیش آپدیت شد
0
function saveorder($data){
        self::sessioninit();
        $addresinfo=self::sessionget('addresid');
        $addresinfo=unserialize($addresinfo);
        $family=$addresinfo['family'];
        $mobile=$addresinfo['mobile'];
        $tel=$addresinfo['tel'];
        $codeposti=$addresinfo['codeposti'];
        $ostan=$addresinfo['ostan_name'];
        $city=$addresinfo['city_name'];
        $addres=$addresinfo['addres'];

        $basketinfo=$this->getbasket();
        $basket=$basketinfo[0];
        $basket=serialize($basket);
        $basketprice=$basketinfo[1];
        $basketdiscount=$basketinfo[2];

        $postprice=$this->calpostprice($addresinfo['city']);
        $postype=self::sessionget('postid');
        if ($postype==1){
            $postprice=$postprice['pish'];
        }else if ($postype==2){
            $postprice=$postprice['sef'];
        }

        $code=$data['code'];
        $darsaddis=$this->checkcode($code);
        $darsadorice=($darsaddis*$basketprice)/100;

        $pricetotal=$basketprice-$basketdiscount+$postprice-$darsadorice;
        $pricetotal=ceil($pricetotal);
        $userid=self::sessionget('user');

        $paytype=$data['paytype'];
        $beforpay='';
        $des="خرید از سایت قاسمی";
        if ($paytype==1){
            $payment=new Payment();

            $result=$payment->zarinpalrequest($pricetotal,$des,'ingo@ghasemi.ir',$mobile);
            $Status=$result['Status'];

            $Authority=$result['Authority'];
            $beforpay=$Authority;

        }

        $sql="insert into tbl_order (family,ostan,city,code_posti,addres,tel,mobile,basket,amount,post_type,post_price,userid,beforpay,status) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
        $params=[$family,$ostan,$city,$codeposti,$addres,$tel,$mobile,$basket,$pricetotal,$postype,$postprice,$userid,$beforpay,1];
        $this->doupdate($sql,$params);

        if ($paytype==1){
        if ($Status==100){
            header('location: https://www.zarinpal.com/pg/StartPay/'.$Authority);
        }else{
            header('location:'.URL. 'showcart4/index/'.$Status);

        }
        }
        if ($paytype==4){
            $sql="select * from tbl_order order by id desc limit 1";
            $result=$this->doselct($sql,[],1);
            header('location:'.URL. 'checkout/index/'.$result['id']);
        }

    }

اینم عکس دیتابیس

 تصویر
https://static.roocket.ir/images/editor/2023/5/12/hjORWQONOk46jxQhbdTEgeNGEmWeICCzFsGmpxXX.jpg

@FullStack


میکائیل
تخصص : برنامه نویسی سمت سرور و کلاینت
@FullStack 2 سال پیش مطرح شد
0

خوب شما فرمودید اگه 13 تا فیلد بزنید ایجاد میشه میتونید فیلد اخر که status هست رو توی دیتابیس به صورت default عدد 1 بدید و از کد های php میتونید پاک کنید اگه اینجوری مشکلتون حل میشه ساده ترین راهش همینه اما اگه بخواین مشکلو بدونید کدوتون باید دیباگ بشه ببینه مشکل از کدوم فیلد هست که توی دیتابیس ایجاد نمیشه باید تک تک فیلد ها چک بشه و طریقه اجرا کردن Query بررسی بشه و اینکه اول یه کوری تستی بزن با مقدار دیتا های تستی مثلا همشونو دستی وارد کن نمیخواد از session ها بگیری خودت وارد کن ببین توی دیتابیس ایجاد میشه یانه و اینکه سعی کن فیلد هارو به ترتیبه توی دیتابیس بزاری چون ظاهرا قاطی پاتی گذاشتی این مورد رعایت بشه بهتره حالا ممکنه مشکل برطرف نکنه اما گمراه هم نمیکنه


حسام قاسمی
@hesam64 2 سال پیش مطرح شد
0

مشگل از دیتا بیسه چون جدول های دیگرم چک کردم که اونام کوئری های insert دارن که اون جدول ها هم بیشتر از 14 تا فیلد را قبول نمیکن.
هیچکدوم از فیلد ها مشگلی ندارن
https://roocket.ir/discuss/Fatal-error-Uncaught-PDOException
@FullStack


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام