2013-04-08 4 views
0

Я получаю следующую ошибку при попытке обновить запрос с помощью подготовленных инструкций mysqli. что не так с сообщением об ошибке, почему это неожиданно? любая помощь.подготовленные заявления UPDATE

Parse error: syntax error, unexpected '$prob' (T_VARIABLE) 

Вот запрос

$mysqli = new mysqli("localhost", "root", "", "newlogin"); 
     if ($mysqli->connect_errno) { 
     echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
     } 
     $check = $mysqli->prepare("select * from `vpb_uploads` where `username` = ? and `firstname` = '' and `image_one` != ''"); 
     $check->bind_param('s', $username); 
     $check->execute(); 
     $check->store_result(); 

     if($check->num_rows < 1) 
     { 
      echo '<div class="vpb_error_info" align="left">Sorry, It seems you have not added any file yet.<br>Please click on the Add Files button to first of all add at least one file before submitting your details. Thanks...</div>'; 
     } 
     else 
     { 
     $firstname = trim(strip_tags($_POST["firstname"])); 
     $lastname = trim(strip_tags($_POST["lastname"])); 

     if($prob = $mysqli->prepare("update `vpb_uploads` set `firstname` = ?, `lastname` = ? where `username` = ? and `firstname` = '' and `image_one` != ''") 
     $prob->bind_param('sss', $firstname, $lastname, $username); 
     $prob->execute(); 
     ) 

     { 
       echo '<font style="font-size:0px;">success</font>'; 
       echo '<div class="vpb_error_info" align="left">Congrats <b>'.$firstname.' '.$lastname.'</b>, your details have been submitted successfully. Thanks...</div>'; 
     } 

ответ

0

Попробуйте этот код:

$mysqli = new mysqli("localhost", "root", "", "newlogin"); 
if ($mysqli->connect_errno) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
} 
$check = $mysqli->prepare("select * from `vpb_uploads` where `username` = ? and `firstname` = '' and `image_one` != ''"); 
$check->bind_param('s', $username); 
$check->execute(); 
$check->store_result(); 

if($check->num_rows < 1){ 
    echo '<div class="vpb_error_info" align="left">Sorry, It seems you have not added any file yet.<br>Please click on the Add Files button to first of all add at least one file before submitting your details. Thanks...</div>'; 
} else { 
    $firstname = trim(strip_tags($_POST["firstname"])); 
    $lastname = trim(strip_tags($_POST["lastname"])); 

    $prob = $mysqli->prepare("update `vpb_uploads` set `firstname` = ?, `lastname` = ? where `username` = ? and `firstname` = '' and `image_one` != ''") ; 
    if ($prob){ 
     $prob->bind_param('sss', $firstname, $lastname, $username); 
     $success = $prob->execute(); 
     if ($success){ 
      echo '<font style="font-size:0px;">success</font>'; 
      echo '<div class="vpb_error_info" align="left">Congrats <b>'.$firstname.' '.$lastname.'</b>, your details have been submitted successfully. Thanks...</div>'; 
     } 
    } 
} 
+0

Я изменил его на то, что вы написали, но я получаю ошибку Parse: синтаксическая ошибка, неожиданная '{', которая выше эха – magnsta

+0

@magnsta Я отредактировал свой ответ, сообщите мне, если он сработает для вас. – vikingmaster

+0

нет Я все еще получаю ту же ошибку неожиданно { – magnsta

0

На первый взгляд, это выглядит как ваша ошибка в строке 19:

if($prob = $mysqli->prepare(" 
    UPDATE `vpb_uploads` 
    SET `firstname` = ?, 
     `lastname` = ? 
    WHERE `username` = ? 
    AND `firstname` = '' 
    AND `image_one` != '' 
") 

    $prob->bind_param('sss', $firstname, $lastname, $username); 
    $prob->execute(); 

) 

Вы имеете bind_param и execute функции в if само заявление. Она должна быть:

if($prob = $mysqli->prepare(" 
    UPDATE `vpb_uploads` 
    SET `firstname` = ?, 
     `lastname` = ? 
    WHERE `username` = ? 
    AND `firstname` = '' 
    AND `image_one` != ''; 
") { 
    $prob->bind_param('sss', $firstname, $lastname, $username); 
    $prob->execute(); 
} 

Если вы получаете путать с кронштейнами, ваш конечный код должен выглядеть следующим образом:

$mysqli = new mysqli("localhost", "root", "", "newlogin"); 
if ($mysqli->connect_errno) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
} 
$check = $mysqli->prepare("select * from `vpb_uploads` where `username` = ? and `firstname` = '' and `image_one` != '';"); 
$check->bind_param('s', $username); 
$check->execute(); 
$check->store_result(); 

if($check->num_rows < 1) { 
    echo '<div class="vpb_error_info" align="left">Sorry, It seems you have not added any file yet.<br>Please click on the Add Files button to first of all add at least one file before submitting your details. Thanks...</div>'; 
} else { 
    $firstname = trim(strip_tags($_POST["firstname"])); 
    $lastname = trim(strip_tags($_POST["lastname"])); 
} 

if($prob = $mysqli->prepare("update `vpb_uploads` set `firstname` = ?, `lastname` = ? where `username` = ? and `firstname` = '' and `image_one` != '';")) { 
    $prob->bind_param('sss', $firstname, $lastname, $username); 
    $prob->execute(); 
    echo '<font style="font-size:0px;">success</font>'; 
    echo '<div class="vpb_error_info" align="left">Congrats <b>'.$firstname.' '.$lastname.'</b>, your details have been submitted successfully. Thanks...</div>'; 
} 
+0

я получаю Ошибка анализа: синтаксическая ошибка, неожиданная '{' – magnsta

+0

Похоже, вы еще не закрыли другую фигурную скобку, запущенную на '} else {' в строке 15. Я включил ее в свой ответ. –

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