PDA

View Full Version : هشدار در php



msafvati
چهارشنبه 21 آذر 1386, 15:34 عصر
با سلام به همگی دوستان من با یک هشدار در php هنگام insert کردن دیتا مواجه شدم که ازتون می خوام منو راهنمایی کنید



insert into TblDarman values(ihpbpihb,'','','','')
Warning: odbc_do() [function.odbc-do (http://127.0.0.1:8080/function.odbc-do)]: SQL error: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1., SQL state 07001 in SQLExecDirect in F:\Project site Expert\Darman\ToseeDarman1.php on line 23

در این کد :

<?php
if(!strlen(trim($_GET['txt1'])))
{
echo "áØÝÇ ÍÇáÊ Çæá ÑÇ æÇÑÏ äãÇÆíÏ";
die();
}
$connectionstring = odbc_connect("Darman", "","");
$query ="insert into TblDarman values(";
$query = $query.$_GET['txt1'].",";
$query = $query."'".$_GET['txt2']."',";
$query = $query."'".$_GET['txt3']."',";
$query = $query."'".$_GET['txt4']."',";
$query = $query."'".$_GET['txt5']."')";
echo $query;
$result = odbc_do($connectionstring, $query);
odbc_close($connectionstring);
?>
با سپاس از همه

tabib_m
چهارشنبه 21 آذر 1386, 17:03 عصر
کوئری ای که ساخته میشه رو اینجا بنویس

msafvati
چهارشنبه 21 آذر 1386, 17:14 عصر
سورس مربوطه رو نوشتم در بالا منظورتون رو متوجه نشدم اگه امکان داره بیشتر راهنمایی کنید

cybercoder
پنج شنبه 22 آذر 1386, 11:19 صبح
یعنی در نهایت قبل از execute بنویس echo $query و اون چیزی که چاپ میشه رو بذار اینجا بی کم و کاست تا ببینیم مجل از کجاست

msafvati
پنج شنبه 22 آذر 1386, 15:13 عصر
با تشکر
اون چیزیکه فرمودین این رو به من داد

insert into TblDarman values(bouhb,'','','','')

tabib_m
پنج شنبه 22 آذر 1386, 15:34 عصر
insert into TblDarman values(bouhb,'','','','')
احتمالا یک فیلدی وجود داره که باید توش مقدار ارسال بشه، ولی نشده.
در هر صورت ارور مربوطه داره میگه که پارامترهای ورودی کمتر از نیاز هستند. مطمئنا اگر به جای اون چهار تا فیلد خالی، مقداری قرار بگیره، دیگه با این ارور مواجه نخواهید شد.

موفق باشید.

msafvati
جمعه 23 آذر 1386, 13:22 عصر
بازهم با تشکر ازشما که پیگیری می کنید
بنده هیچکدام از فیلدها رو خالی نمی فرستم همینطور که دیدید 5 تا text ورودی دارم که همرو می نویسم اما بازهم با همین error روبه رو میشم اگه باز امکان داره از تجربتون بندرو بیشتر بهره مند کنید

tabib_m
جمعه 23 آذر 1386, 17:01 عصر
$_GET['txt2'] تا 5، مقدار ندارن، ببین کجای کدت باعث بی مقداری این ها شده. ممکنه نامگذاری فرم باعث این مشکل باشه و یا...

Bahram0110
جمعه 23 آذر 1386, 17:31 عصر
اگه از تابع استفاده می کنی...
درون تابع نمی تونی به متغیر های بیرونی دسترسی داشته باشی (مگر در صورتی که گلوبال باشند)

tabib_m
جمعه 23 آذر 1386, 19:29 عصر
اگه از تابع استفاده می کنی...
درون تابع نمی تونی به متغیر های بیرونی دسترسی داشته باشی (مگر در صورتی که گلوبال باشند)
$_GET خودش global هست، همه جا میشه ازش استفاده کرد.
در ضمن، $_GET['txt1'] هم داره جواب میده...

msafvati
شنبه 24 آذر 1386, 09:54 صبح
دوستان عرض شود که من اصلا تو جدول 7 تا فیلد داشتم که بهشون هواسم نبود این مشکل رو برطرف کردم یعنی با هم مچ شدند اما با وجود این تغییرات بازهم همان error ایندفه با این شکل اومد


Warning: odbc_do() [function.odbc-do (http://127.0.0.1:8080/function.odbc-do)]: SQL error: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1., SQL state 07001 in SQLExecDirect in F:\Project site Expert\Darman\ToseeDarman1.php on line 25
insert into TblDarman values(hiuohi,'hiph','piuh','poiuh','poiuh','piuh' ,'poiu')


که همون حالت قبلی هست به نظر شما علت چی میتونه باشه؟

cybercoder
شنبه 24 آذر 1386, 10:45 صبح
insert into TblDarman values(hiuohi,'hiph','piuh','poiuh','poiuh','piuh' ,'poiu')

- اولیش بین سینگل کوتیشن نیست.
- از تابع Addslashes در جاهایی که لازمه استفاده کن
- اگه حل نشد از نوع دیگر نوشتن دستور Insert استفاده کن ببینم چی می شه

موفق باشی

msafvati
شنبه 24 آذر 1386, 11:13 صبح
دوستان از همتون تشکر می کنم همتون لطف کردید ..یک تغییر اعمال کردم ظاهرا که مشکل حل شد
یک تغییر تو خط اول کد php در query اعمال کردم یعنی اونو داخل کوتیشن قرار دادم