2015-04-25 2 views
0

я использовал PDO, чтобы обновить свои значения в таблицу, используя следующий методUPDATE в базу данных с использованием PDO ошибки

форма

<form role="form" method="post" action="submitupdate.php" autocomplete="off"> 
    <input class="update" type="text" name="fullname"></li> 
    <input class="update" type="text" name="dob"></li> 
    <textarea style="width:740px;height:220px;" class="update" type="text" name="intrested"></textarea></li> 
    <textarea style="width:740px;height:220px;" class="update" type="text" name="description"></textarea></li> 
</form> 

Обработка

<?php 

require('includes/config.php'); 
//if not logged in redirect to login page 
if (!$user->is_logged_in()) { 
    header('Location: login.php'); 
} 
//define page title 
$title = 'Members Page'; 
//include header template 
?> 
<?php 

    try { 

    $username = $_SESSION['username']; 
    $fullname = $_POST['fullname']; 
    $dob = $_POST['dob']; 
    $intrested = $_POST['intrested']; 
    $description = $_POST['description']; 
    $sql = "UPDATE `members` 
    SET `fullname` = :firstname, 
     `dob` = :dob, 
     `intrested` = :intrested, 
     `description` = :description 
WHERE `username` = :username"; 



    $statement = $db->prepare($sql); 
    $statement->bindValue(":username", $username); 
    $statement->bindValue(":fullname", $fullname); 
    $statement->bindValue(":dob", $dob); 
    $statement->bindValue(":intrested", $intrested); 
    $statement->bindValue(":description", $description); 
    $count = $statement->execute(); 

    $db = null;  // Disconnect 
} catch (PDOException $e) { 
    echo $e->getMessage(); 
} 

Am колонка обновления с помощью пользователя наименование не по ID я Обновит случаться с помощью username и имя пользователя вызывается с помощью сеанса

я получаю следующее сообщение об ошибке

SQLSTATE[HY093]: Invalid parameter number: parameter was not defined 

может кто-то помочь мне

+0

Если вы редактировали вопрос, чтобы исправить исходную задачу, вы должны задать новый вопрос. Пожалуйста, закройте этот вопрос и спросите его еще раз, потому что нижеприведенные ответы больше не применимы к тому, что вы просите, и я смущен тем, каков ваш фактический вопрос сейчас. – Mike

ответ

1

вы выполняете запрос, прежде чем вы устанавливаете значения. Во время выполнения запроса значения, которые вы пытаетесь использовать, еще не установлены, поэтому нет данных для замены заполнителей.

Это должно работать:

<?php 

require('includes/config.php'); 
//if not logged in redirect to login page 
if (!$user->is_logged_in()) { 
    header('Location: login.php'); 
} 
//define page title 
$title = 'Members Page'; 
//include header template 

try { 

    $username = $_SESSION['username']; 
    $fullname = $_POST['fullname']; 
    $dob = $_POST['dob']; 
    $intrested = $_POST['intrested']; 
    $description = $_POST['description']; 
    $sql = "UPDATE `members` 
    SET `fullname` = :fullname, 
     `dob` = :dob, 
     `inserted` = :inserted, 
     `description` = :description 
WHERE `username` = :username"; 



    $statement = $conn->prepare($sql); 
    $params = array(
     ":username" => $username, 
     ":fullname" => $fullname, 
     ":dob" => $dob, 
     ":inserted" => $intrested, 
     ":description" => $description 
    ); 
    $count = $statement->execute($params); 

    $conn = null;  // Disconnect 
} catch (PDOException $e) { 
    echo $e->getMessage(); 
} 
+0

i get 'SQLSTATE [HY093]: Неверный номер параметра: параметр не был определен' сделал некоторые изменения проверить мой вопрос – romman

+0

спасибо, что он работает – romman

1

ли завершен код?

Я вижу $ row, но где вы определили $ row?

BTW вы выполняете запрос перед установкой значений для использования.

заменить код следующим образом:

<?php 

require('includes/config.php'); 
//if not logged in redirect to login page 
if (!$user->is_logged_in()) { 
    header('Location: login.php'); 
} 
//define page title 
$title = 'Members Page'; 
//include header template 

try { 



    $sql = "UPDATE `members` 
    SET `fullname` = :firstname, 
     `dob` = :dob, 
     `inserted` = :inserted, 
     `description` = :description 
WHERE `username` = :username"; 


    $username = $_SESSION['username']; 
    $fullname = $row['fullname']; 
    $dob = $row['dob']; 
    $intrested = $row['intrested']; 
    $description = $row['description'];  


    $statement = $conn->prepare($sql); 
    $statement->bindValue(":username", $username); 
    $statement->bindValue(":fullname", $fullname); 
    $statement->bindValue(":dob", $dob); 
    $statement->bindValue(":inserted", $intrested); 
    $statement->bindValue(":description", $description); 
    $count = $statement->execute(); 

    $conn = null;  // Disconnect 
} catch (PDOException $e) { 
    echo $e->getMessage(); 
} 
+0

i get' SQLSTATE [HY093]: Неверный номер параметра: параметр не определен' сделал некоторые изменения проверки мой вопрос – romman

+0

там некоторая ошибка проверить мой вопрос сделал некоторые изменения – romman

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