راکت

کوئری insert

4 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

4
میکائیل
میکائیل
@FullStack

تخصص: برنامه نویسی سمت سرور و کلاینت

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

حسام قاسمی
حسام قاسمی
@hesam64
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

تخصص: برنامه نویسی سمت سرور و کلاینت

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

حسام قاسمی
حسام قاسمی
@hesam64

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

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

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