1
该代码对存储在$ in中的所有查询执行事务。例如 $ in =“Query1; Query2; Query3;”mysql_query(“ROLLBACK”);不起作用
当其中一个出现故障,将被回退,但没有效果,并且没有任何错误插入到数据库
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
die('ERR');
}
mysql_select_db('db445123652');
mysql_query("START TRANSACTION");
$strlen = strlen($in);
$ini = 0;
for($i = 0; $i <= $strlen; $i++) {
$char = substr($in, $i, 1);
if($char == ';')
{
$resul = mysql_query(substr($in, $ini, $i));
if(!$resul)
{
echo mysql_error();
mysql_query("ROLLBACK");
echo 'Rollback';
break;
}
else{
$ini = $i + 1;
}
}
}
if($i==($strlen+1) && $resul)
{
echo 'OK';
mysql_query("COMMIT");
}
数据库是在1 & 1主机查询和我通过存取权限phpMyAdmin的。
您是否使用InnoDb引擎? – Benz 2014-09-04 07:27:19
我不是那个正在使用的引擎,因为它是在主机中雇用的数据库。我会尽力得到这些信息。 – user3745618 2014-09-04 07:36:45
引擎是MyISAM。 – user3745618 2014-09-04 07:49:11