انجمن ایران پی اچ پی

نسخه کامل: خطای syntax در یک query
شما در حال مشاهده نسخه متنی این صفحه می‌باشید. مشاهده نسخه کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
با سلام
من برای ارسال داده هام به دیتابیس از یک ادیتور استفاده می کنم . query من رو هم برای این کار در ذیل می بینید . اما در هنگام اجرای این query خطای اشکال در syntax زیر رو به من میده . خودم تشخیص می دم که چون ادیتور داخل کد های html ی که تولید می کند کوتیشن و دابل کوتیشن داره توی query مشکل ایجاد می کنه . البته این رو هم بگم که من توی سیستم خودم که از wamp5 استفاده می کنم مشکلی ندارم و query خیلی خوب اجرا میشه اگه کسی تجربه این خطا رو داره راح حلشو ارائه کنه
این هم متن خطا :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: 11.25pt;" dir="rtl' at line 4

این هم query:

در کد زیر متغیر های $news_textfull و$ news_textا شامل کد های تولید شده توسط ادیتور هستند .
کد PHP:
$query="INSERT INTO `news` (`news_id`, `news_title`, `news_text`, `news_textfull`, 
`news_pic`,`category`,`author`,`news_time`,`news_date`,`news_day`,`breaking_news​`,`display_date`,`view_count`,`serious`) 
VALUES
 ('', \""
.$news_title."\", '".$news_text."', '".$news_textfull."',\"itcom/".$path."\", \"".$category."\",\"".$author."\", \"$time\", \"$jdate\",\"$day\",\"".$breaking_news."\",\"".$display_date."\",\"0\",\"".$serious."\") ";
                  if ( 
mysql_query("$query",$conn)){
                   print(
"<b dir=\"rtl\">مطلب مورد نظر با موفقیت ارسال شد !</b>");
                  }else{print(
"<b dir=\"rtl\">ارسال مطلب مورد نطر با مشکلی روبرو شده است !!!<b>");
                  } 
(۱۳۸۷ اسفند ۱۹ ۱۲:۴۱ عصر)oia نوشته شده توسط: [ -> ]این تابع شاید به تو کمک کنه

http://ir.php.net/manual/en/function.addslashes.php
سلام،
اگر news_id مقدارش AutoIncrease هستش، می تونید ,' ' رو در اول Values بردارید.
همچنین به جای قرار دادن این همه Slashe، به این صورت بنویسید:
کد PHP:
'" . $_Value . "' 
بجای دستور print، از دستور echo استفاده کنید.
ار تابعی که دوستان معرفی کردند هم استفاده کنید.
موفق باشید.
سلام.

دوست عزيز از اين كد استفاده كن.

کد PHP:
$query="INSERT INTO `news` 
(`news_id`, `news_title`, `news_text`, `news_textfull`,`news_pic`,`category`,`author`,`news_time`,`news_date`,`new​s_day`,`breaking_news​`,`display_date`,`view_count`,`serious`) 
VALUES
 ('', '
$news_title', '$news_text', '$news_textfull','itcom/$path', '$category','$author', '$time', '$jdate','$day','$breaking_news','$display_date','0','$serious'') ";
 
                  if ( 
mysql_query($query,$conn)){
                   echo 
"<b dir=\"rtl\">مطلب مورد نظر با موفقیت ارسال شد !</b>";
                  }else{echo
"<b dir=\"rtl\">ارسال مطلب مورد نطر با مشکلی روبرو شده است !!!<b>" ;
                  } 
با تشکر از همه دوستان
همه این کار ها رو کردم ولی جواب نگرفتم . آیا نسخه mysql می تونه موجب این خطا شده باشه ؟؟
(۱۳۸۷ اسفند ۲۱ ۱۰:۰۷ صبح)AHMADBADPEY نوشته شده توسط: [ -> ]با تشکر از همه دوستان
همه این کار ها رو کردم ولی جواب نگرفتم . آیا نسخه mysql می تونه موجب این خطا شده باشه ؟؟

قبل از قرار دادن متغيرها در كوئري حتما از addslashes استفاده كن.

حالا اگه ميتوني ورودي خودت يا صفحه اصلي رو ارسال كن . شايد تو نستيم كمكت كنيم.
دوستان با تشکر
مشکل با استفاده از addslashes حل شد . باز هم ممنون
فقط یه مشکل کوچولو در یه جای دیگه دارم خطای زیر چه معنی ای می ده البته این خطا اصلا مربوط به موضوع قبلی نیست
Duplicate entry '0' for key 1
شما سعی دارید که برای یک فیلدی که منحصر به فرد هست دو مقدار یکسان ذخیره کنید و این اخطار رو می گیرید
(۱۳۸۷ اسفند ۲۱ ۰۱:۲۲ عصر)AHMADBADPEY نوشته شده توسط: [ -> ]دوستان با تشکر
مشکل با استفاده از addslashes حل شد . باز هم ممنون
فقط یه مشکل کوچولو در یه جای دیگه دارم خطای زیر چه معنی ای می ده البته این خطا اصلا مربوط به موضوع قبلی نیست
Duplicate entry '0' for key 1

همانطور كه وحيد جان گفتند ، شما در حال درج (insert) يك كليد اصلي هستيد كه قبلا اضافه شده است.

اگه auto_increament است بجاي قرار دادن مقدار صحيح يا هر چيزي از NULL استفاده كن.
من این کار رو کردم:
کد PHP:
$group=trim($_POST['group']);
   
$title_cat=$_POST['title_cat'];
   if (
$query=mysql_query("insert into cat_list (cat_name,group) values ('".$title_cat."','".$group."')",$conn)){
    print(
"موضوع مورد نظر با موفقیت ایجاد شد .");
    }
//if ($query
     
else{
      print(
"اشکالی در ایجاد موضوع جدید پیش آمده است.");
      echo(
mysql_error());
     } 

اما خطای زیر رو بهم داد . اصلا sytax صحیح یه query چه جوریه ؟
اشکالی در ایجاد موضوع جدید پیش آمده است.You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group) values ('Visual Basic','آموزش')' at line 1
ببخشید !!!!!!
این query منه :
کد PHP:
$group=trim($_POST['group']);
   
$title_cat=$_POST['title_cat'];
   if (
$query=mysql_query("insert into cat_list (cat_id,cat_name,group) values ('".NULL."','".$title_cat."','">$group."')",$conn)){
    print(
"موضوع مورد نظر با موفقیت ایجاد شد .");
    }
//if ($query
     
else{
      print(
"اشکالی در ایجاد موضوع جدید پیش آمده است.");
      echo(
mysql_error());
     } 
صفحه‌ها: 1 2
لینک مرجع