PDA

View Full Version : سوال: مشکل با update



son_games
چهارشنبه 06 بهمن 1389, 12:02 عصر
سلام دوستان.

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

وقتی از update استفاده میکنم این ارور رو میده. البته در لکال مشکلی ندارم ولی در سرور ارور میده.


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 '' at line 1

این هم کد :


$sql_edit="UPDATE `link` SET
`title` = '$title',
`text` = '$name',
`img` = '$imgurl',
`link` = '$url'
WHERE `id`=".$id.";";

لطفا کمک کنید.

MMSHFE
چهارشنبه 06 بهمن 1389, 12:08 عصر
با سلام، دوست گرامي بهتره از قواعد استاندارد MySQL پيروي كنيد تا در سرورهاي مختلف كه قواعد خصوصي مختلفي پياده سازي ميكنن (برحسب نگارش MySQL مورد استفاده) به مشكل بر نخوريد. اين الگو رو امتحان كنيد:


$sql_edit="UPDATE `link` SET
`title` = '$title',
`text` = '$name',
`img` = '$imgurl',
`link` = '$url'
WHERE (`id`='$id')";
نكته: شرط where رو توي پرانتز بيارين و هر فيلدي رو چه عددي و چه رشته اي، توي گيومه تگ بگذاريد.

mohsen6500
چهارشنبه 06 بهمن 1389, 12:09 عصر
سلام نکنه دیتا بیست رو توی سرور نساختی؟!

";"
این به نظرت اضافی نیست؟
بعد آپدیت کویری هم میگیری؟

son_games
چهارشنبه 06 بهمن 1389, 12:22 عصر
با سلام، دوست گرامي بهتره از قواعد استاندارد MySQL پيروي كنيد تا در سرورهاي مختلف كه قواعد خصوصي مختلفي پياده سازي ميكنن (برحسب نگارش MySQL مورد استفاده) به مشكل بر نخوريد. اين الگو رو امتحان كنيد:


$sql_edit="UPDATE `link` SET
`title` = '$title',
`text` = '$name',
`img` = '$imgurl',
`link` = '$url'
WHERE (`id`='$id')";
نكته: شرط where رو توي پرانتز بيارين و هر فيلدي رو چه عددي و چه رشته اي، توي گيومه تگ بگذاريد.

الان دیگه error نمیده ولی update هم نمیشه.
mysql_error هم چیزی نشون نمیده.


سلام نکنه دیتا بیست رو توی سرور نساختی؟!

این به نظرت اضافی نیست؟
بعد آپدیت کویری هم میگیری؟

دوست عزیز در لکال کار میکنه.

binyaft
چهارشنبه 06 بهمن 1389, 12:57 عصر
$sql_edit رو چاپ کن ببین چیزی که میخوای هست یا نه

MMSHFE
پنج شنبه 07 بهمن 1389, 07:43 صبح
با سلام، اين دستور رو بعد از اجراي Query بنويسيد:


if(mysql_affected_rows()<=0)
{
echo(mysql_error()."<BR/>\n");
}
تا مشخص بشه اشكال كار از كدوم قسمته.
موفق و مؤيد باشيد.

son_games
پنج شنبه 07 بهمن 1389, 11:00 صبح
$sql_edit="UPDATE `link` SET
`title` = '$title',
`text` = '$name',
`img` = '$imgurl',
`link` = '$url'
WHERE `id`=".$id.";";


db_connect();
$sql_link=mysql_query($sql_edit);
if($sql_link){
echo'<center><font color="#00CC00">اطلاعات با موفقیت ذخیره شد.</font></center>';
}else{
echo mysql_error();
}
db_close();
من ا ز این کد ها استفاده میکنم.

وقتی هم اجرا میکنم
<font color="#00CC00">اطلاعات با موفقیت ذخیره شد.</font> چاپ میشه ولی در db ثبت نمیشه. مشکل از connecion هم نیست چون بقیه دستور ها کار میکنه. و همینطور user که برای database تعریف کردم محدودیت update نداره.

son_games
پنج شنبه 07 بهمن 1389, 11:07 صبح
با سلام، اين دستور رو بعد از اجراي Query بنويسيد:


if(mysql_affected_rows()<=0)
{
echo(mysql_error()."<BR/>\n");
}
تا مشخص بشه اشكال كار از كدوم قسمته.
موفق و مؤيد باشيد.

سلام.
استفاده کردم، فقط <br> چاپ میشه.

MMSHFE
شنبه 09 بهمن 1389, 08:40 صبح
با سلام، دوست گرامي اين دستور رو بعد از اجراي Query بنويسيد:


echo(mysql_affected_rows());
و اگه خروجي 0 بود معنيش اينه كه مقاديري كه توي متغيرهاي title$ و... وارد كردين، با مقادير قبلي يكسان بوده يا اينكه ركوردي با id برابر با id$ وجود نداشته و به همين دليل، هيچ ركوردي اصلاح نشده. شرطي كه شما گذاشتين باعث ميشه فقط اگه خدا وجود داشت اون رو بنويسه. شرط رو اينطوري اصلاح كنيد:


echo('<center><font color="#00CC00">');
switch(mysql_affected_rows())
{
case -1:
echo(mysql_error());
break;
case 0:
echo('اطلاعات ذخيره نشد.');
break;
default:
echo('اطلاعات با موفقیت ذخیره شد.');
break;
}
echo('</font></center>');