2013-07-27 3 views
-3

Я столкнулся с несколькими ошибками разбора, когда я пытаюсь запустить код запроса MySQL/подготовленный оператор в конце этого сообщения. В частности, я получаю разбор ошибок чтения:Подготовленные утверждения (MySQLi), получение ошибок анализа

Parse error: syntax error, unexpected '{' in .... on line 22  

Строка 22 соответствует концу первого «если» заявление. Я также получил ту же ошибку, когда у меня была точка с запятой в конце первого выражения «если» (неожиданный «;»). Когда я удаляю {, то получаю еще одно предупреждение:

Parse error: syntax error, unexpected T_REQUIRE_ONCE in ....on line 24 

Строка 24 соответствует запросу require_once. Если я поставил требует заявления в начале кода, то я получаю другую ошибку синтаксического анализа:

Parse error: syntax error, unexpected T_VARIABLE in ....on line 26 

линии 26 соответствует началу запроса. Так что в основном бесконечные ошибки разбора. Идти немного орехов. Любая помощь будет принята с благодарностью. Спасибо!

 <?php 

     if (!empty($_POST['var1'])&&!empty($_POST['var2']) 
     &&!empty($_POST['var3'])&&isset($_POST['var4'], 
     $_POST['var5'], $_POST['var6']) { 

     require_once 'connect.inc.php'; 

     $query = "INSERT INTO tablename (var1, var2, var3, var4, var5, var6) 
     VALUES (?,?,?,?,?,?)"; 

     $stmt = mysqli_prepare($link, $query); 

     mysqli_stmt_bind_param($stmt, "ssssss", $var1, $var2, $var3, $var4, $var5, $var6); 

     $var1 = $_POST['var1']; 
     $var2 = $_POST['var2']; 
     $var3 = $_POST['var3']; 
     $var4 = $_POST['var4']; 
     $var5 = $_POST['var5']; 
     $var6 = $_POST['var6']; 

     mysqli_stmt_execute($stmt); 

     if (mysqli_stmt_affected_rows($stmt)==1); 

     mysqli_stmt_close($stmt); 

     $result = mysqli_query($link, $query); 

     if ($result) { 
     echo 'Thank you for your submission.'; 
     }  
     else { 
      echo 'We were unable to process your information.'.mysqli_error($link).' 
      Please ensure all required fields were filled out.'; 
      } 

     mysqli_close($link); 

} 
} 

?> 
+0

Подсчитайте свое скобку в ' if'. – mario

ответ

0

Ваш код содержит

if (mysqli_stmt_affected_rows($stmt)==1); 

Это в основном оценивающих, если заявление и не делать ничего о результате. Так что это означает вашу линию после того, как

mysqli_stmt_close($stmt); 

Всегда ли при вызове. (Это как Java будет оценивать его по крайней мере, PHP может ошибиться относительно точку с запятой непосредственно после того, как если.

Вы также отсутствует закрывающую скобку на своем первом, если заявление (как и все остальные уже заметили).

0
if (!empty($_POST['var1']) && 
    !empty($_POST['var2']) && 
    !empty($_POST['var3']) && 
    isset($_POST['var4'], $_POST['var5'], $_POST['var6']) 
    ) { 

подсчитывать ваши открытия/закрытия скобки

0

Line 22:

if (!empty($_POST['var1']) &&!empty($_POST['var2']) && !empty($_POST['var3']) && isset($_POST['var4'], $_POST['var5'], $_POST['var6'])) { 

Вы пропустили закрывающую скобку.

Смежные вопросы