PDA

View Full Version : سوال: insert در mysql با دستورات php



khnjli
پنج شنبه 20 تیر 1398, 13:46 عصر
سلام وقتتون بخیر
من یه پایگاه داده طراحی کردم(mysql) هر کاری میکنم از طریق کدهای php اطلاعات داخلش insert نمیشه لطفا راهنمایی بفرمایید
<?php
$name=$_POST['std-name'];
$lname=$_POST['std-lname'];
$fname=$_POST['std-fname'];
$stdid1=$_POST['std-id1'];
$stdpschool=$_POST['std-pschool'];
$stdpavg=$_POST['std-pavg'];
$stdid2=$_POST['std-id2'];
$stdphone=$_POST['std-phone'];
$stdmname=$_POST['std-mname'];
$stdclassid=$_POST['std-classid'];
$stdex=$_POST['std-ex'];
$stdfphone=$_POST['std-fphone'];
$stdmphone=$_POST['std-mphone'];
$stdimg=$_POST['std-img'];
$stdtt=$_POST['std-tt'];


$db=new PDO("mysql:host=localhost;dbname=fazilat","root","");
$db->exec( "SET CHARACTER SET utf8" );






$sql="INSERT INTO student ('STD-ID', 'NAME', 'L-NAME', 'F-NAME', 'T.T.', 'ID', 'PRE-SCHOOL', 'PRE-AVG', 'EX-ACTIVITIES', 'CLASS-ID', 'M-NAME', 'IMG', 'PHONE', 'FATHER-PHONE', 'MOTHER-PHONE') VALUES ('$stdid1','$name','$lname','$fname','$stdtt','$st did2','$stdpschool','$stdpavg','$stdex','$stdclass id','$stdmname','$stdimg','$stdphone','$stdfphone' ,'$stdmphone')";
$stmt=$db->prepare($sql);
$stmt->execute();
?>

ali_sed
پنج شنبه 20 تیر 1398, 18:10 عصر
سلام

دلیلش اینکه که کوئری شما ایراد داره. بررسی کنید ببینید خطاش چیه؟ اول از همه نام ستون ها را در تک کوتیشن قرار ندهید بلکه از ` (accent) استفاده کنید.


به شکل زیر کوئری خود را اجرا کنید تا اگر خطایی داشت. متن خطا نمایش یابد.


if (!$stmt->execute()) {
print_r($stmt->errorInfo());
}


یک راه دیگه خطایابی کوئری این است که با دستور echo $sql; رشته کوئری را نمایش دهید برخی خطاها چشمی مشخص میشود ممکنه در تایپ یک متغیر اشتباه کرده باشید، فاصله اضافه و ... بعد کوئری را در phpmyadmin اجرا کنید و خطای آن را ملاحظه کنید. اگر از روی خطا متوجه نشدید مشکل چیه حتما متن خطا و ساختار دیتابیس خود را ارسال کنید.

در ضمن جهت مقابله با حملات اسکویل اینجکشن به این شکل کوئری خود را اصلاح کنید.

$sql="INSERT INTO student (`STD-ID`, `NAME`) VALUES (?, ?)";
$stmt=$db->prepare($sql);
$stmt->execute(array($stdid1, $name));

khnjli
جمعه 21 تیر 1398, 13:33 عصر
سلام علی آقا
خیلی خیلی ممنونم از راهنماییتون خوشبختانه با کمک شما درست شد:تشویق::تشویق:

ali_sed
جمعه 21 تیر 1398, 18:38 عصر
سلام علی آقا
خیلی خیلی ممنونم از راهنماییتون خوشبختانه با کمک شما درست شد:تشویق::تشویق:

خواهش می کنم

موفق باشید