سلام دوستان. من یک کوئری insert ایجاد کردم که شامل 14 تا فیلد هستش و لی موقع اجرا کردن ایجاد نمیشه تو دیتابیس ولی وقتی که یکی از فیلد هارو از کوئری حذف میکنم ایجاد میشه یعنی در واقع کمتر یا مساوی 13 تا فیلد اجرا میشه اما بیشتر یا مساوی 14 تا فیلد اجرا نمیشه .
ممنون میشم اگر کسی میدونه راهنمایی کنه
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
خوب شما فرمودید اگه 13 تا فیلد بزنید ایجاد میشه میتونید فیلد اخر که status هست رو توی دیتابیس به صورت default عدد 1 بدید و از کد های php میتونید پاک کنید اگه اینجوری مشکلتون حل میشه ساده ترین راهش همینه اما اگه بخواین مشکلو بدونید کدوتون باید دیباگ بشه ببینه مشکل از کدوم فیلد هست که توی دیتابیس ایجاد نمیشه باید تک تک فیلد ها چک بشه و طریقه اجرا کردن Query بررسی بشه و اینکه اول یه کوری تستی بزن با مقدار دیتا های تستی مثلا همشونو دستی وارد کن نمیخواد از session ها بگیری خودت وارد کن ببین توی دیتابیس ایجاد میشه یانه و اینکه سعی کن فیلد هارو به ترتیبه توی دیتابیس بزاری چون ظاهرا قاطی پاتی گذاشتی این مورد رعایت بشه بهتره حالا ممکنه مشکل برطرف نکنه اما گمراه هم نمیکنه
مشگل از دیتا بیسه چون جدول های دیگرم چک کردم که اونام کوئری های insert دارن که اون جدول ها هم بیشتر از 14 تا فیلد را قبول نمیکن.
هیچکدوم از فیلد ها مشگلی ندارن
https://roocket.ir/discuss/Fatal-error-Uncaught-PDOException
@FullStack
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟