• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در commitو rollback در mysqli
#1
نمیدونم درد این mysqli چیه که rollback نمیکنه پدرمو در آورد کد رو میزارم یه نگاهی بندازید
کد پی‌اچ‌پی:
$link mysqli_connect("localhost""root""""db");

if (!
$link) {
    
printf("Can't connect to localhost. Error: %s\n"mysqli_connect_error());
    exit();
}

 
mysqli_autocommit($linkTRUE);

if (
$result mysqli_query($link"SELECT @@autocommit")) {
    
$row mysqli_fetch_row($result);
    
printf("Autocommit is %s\n"$row[0]);
    
mysqli_free_result($result);
}


//mysqli_close($link);

/* set autocommit to off */
mysqli_autocommit($linkFALSE);
mysqli_query($link"START TRANSACTION");

/* Insert some values */
$err=mysqli_query($link"INSERT INTO `tsttable` (
`title` ,
`folder` ,
`version` ,
`active`
)
VALUES (
'', '', '', ''
);"
);

$err=mysqli_query($link"INSERT INTO `tsttable`1 (
`title` ,
`folder` ,
`version` ,
`active` 
)
VALUES (
'', '', '', ''
);"
);
echo 
"err=".$err;
/* commit transaction */
if($err==1)
{
  
mysqli_commit($link);
  echo 
"success";
}
if(
$err=='' || $err==false || $err ==0
{
  
mysqli_rollback($link);
  echo 
"error";
}

/* close connection */
mysqli_close($link); 
  پاسخ
تشکر شده توسط : cyletech
#2
خروجی چی بهت میده؟
  پاسخ
تشکر شده توسط :
#3
داستان اینه که query دومی مشکل داره و اجرا نمیشه و چون از transaction دارم استفاده می کنم باید query قبلی رو برگردونه و لی اینکار رو نمیکنه !
  پاسخ
تشکر شده توسط :
#4
خروجی که چاپ میشه چیه؟
  پاسخ
تشکر شده توسط :
#5
خروجی error رو چاپ میکنه

قادتا باید rollback کنه ولی این کار رو انجام نمیده ! میخواین خودتون تست کنید!
  پاسخ
تشکر شده توسط :
#6
این چه جوریه داستانش؟!
کد پی‌اچ‌پی:
"INSERT INTO `tsttable`1 
اون 1 رو یا اشتباه دستت خورده گذاشتی یا باید قبل بسته شدن اون ` کاراکتر باشه!. نمیدونم.
غایب
  پاسخ
تشکر شده توسط :
#7
کلا جای
$link
رو اشتباه گذاشتی. داکیومنت توابعی که استفاده کردی رو بخون
  پاسخ
تشکر شده توسط :
#8
خودم گذاشتم که خطا بده و rollback کنه که اینکار رو انجام نمیده!

راه حلی ندلرین؟Huh

کجاشو اشتباه گذاشتم

لینکا رو ببین:

http://php.net/manual/en/mysqli.commit.php
http://www.master.iag.usp.br/manuais/php...query.html
  پاسخ
تشکر شده توسط :
#9
یه سوال، جداولت از نوع MyISAM هستن؟ اگر هستن جهت اطلاع که روی MyISAM رول‌بک کار نمیکنه. http://www.php.net/manual/en/mysqli.rollback.php#107469
غایب
  پاسخ
تشکر شده توسط : mojtabadj
#10
خدا عمرت بده آره MyISAM هستش چطوری باید تعریفش کنم که کار کنه؟Blush
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان