Транзакции SQL с использованием ошибки PHP - PullRequest
0 голосов
/ 20 марта 2012

Это мой код.Я знаю, что это должно быть легко, но почему-то SQL возвращает ошибку разбора.Пожалуйста, помогите.

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD,DB_DATABASE);
if(mysqli_connect_errno()) {
    die('SQL ERROR : ' . mysqli_connect_error());
}
mysqli_autocommit($link, FALSE);

    $query = "INSERT INTO feedbackExit (1a, 2a, 3a, 4a, 5a, 1b, 2b, 3b, 4b, 5b, 6b, 1c, 2c, 3c, 4c, 5c, 6c, 1d, 2d, 3d, 4d, 5d, 6d, 1e, 2e) 
              VALUES (".$_POST['1a'].",".$_POST['2a'].",".$_POST['3a'].",".$_POST['4a'].",".$_POST['5a'].",
                      ".$_POST['1b'].",".$_POST['2b'].",".$_POST['3b'].",".$_POST['4b'].",".$_POST['5b'].",".$_POST['6b'].",
                      ".$_POST['1c'].",".$_POST['2c'].",".$_POST['3c'].",".$_POST['4c'].",".$_POST['5c'].",".$_POST['6c'].",
                      ".$_POST['1d'].",".$_POST['2d'].",".$_POST['3d'].",".$_POST['4d'].",".$_POST['5d'].",".$_POST['6d'].",
                      ".$_POST['1e'].",".$_POST['2e']")"; 
    $q1 = mysqli_query($link,$query);
    $query = "UPDATE ".$_SESSION['SESS_AUTH']." SET  `refExitHash` =  '".md5($_SESSION['SESS_USERNAME'], $raw_output = null)."'"."  WHERE  `index`='".$_SESSION['SESS_USERNAME']."'";
    $q2 = mysqli_query($link,$query);
    if (!($q1 and $q2) )
    {
     die('Error: ' . mysqli_errno($link));
     mysqli_rollback($link);
    }
    else 
    {
 header("location: FormExitPostSuccess.php");
 mysqli_commit($link);
    }
    mysqli_close($link); 

SQL выдает следующую ошибку синтаксического анализа:
Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный ')', ожидание ',' или ';'в opt / lampp / htdocs / New / feedback / WebsiteRoot / FormExitPostSuccess.php в строке 20

строка 20 в моем коде выглядит так: $ q1 = mysqli_query ($ link, $ query);

Редактировать: все значения в массиве _POST взяты из переключателей.Требуется ли еще проверка?

1 Ответ

1 голос
/ 20 марта 2012

Все комментарии, на мой взгляд, верны, поэтому не игнорируйте их, но, похоже, ошибка в последней строке вашего SQL:

".$_POST['1e'].",".$_POST['2e']")"; 

должно быть

".$_POST['1e'].",".$_POST['2e'] . ")"; 

(Обратите внимание на добавление точки к концу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...