PHP PDO更新功能无提示失败

时间:2016-07-17 00:25:02

标签: php mysql pdo insert-update

我充其量只是一个刚刚开始使用PDO的业余爱好者,而且我对插入语句有一点时间。我有一个函数,它可以更新表中的几列,但我的数据似乎没有正确绑定?我已经查看了google,php.net,http://wiki.hashphp.org,堆栈溢出本身以及sql站点,但是我还没有找到一个可靠的例子,我可以就如何比较去做这个。我看过很多例子,他们更新了一个列,但没有一个显示如何更新几列,我只是无法弄清楚。

希望那里有人可以帮助我,而我的流感浸泡大脑就会明白这一点。

MY GITHUBhttps://github.com/monkeework/WrDK My SCRIPThttps://github.com/monkeework/WrDK/blob/master/library/timeline.php

我的功能:

function timelineRevise(){
#TimelineID & EntryID passed as hidden post values from timelineEdit() function
/*
     <input type="hidden" name="EntryID" value="' . dbOut($row['TimelineID']) . '" />
    <input type="hidden" name="EntryID" value="' . dbOut($row['EntryID']) . '" />
*/
$TimelineID     = strip_tags($_POST['TimelineID']);    #int - primaryKey
$EntryID            = strip_tags($_POST['EntryID']);           #int
$EntryTitle     = strip_tags($_POST['EntryTitle']);        #str
$EntryDate          = strip_tags($_POST['EntryDate']);         #str - entered by user
$EntryDescription   = strip_tags($_POST['EntryDescription']); #str
$CharTag            = strip_tags($_POST['CharTag']);          #str of comma sep numbers


$db = pdo(); # pdo() creates and returns a PDO object

//dumpDie($FirstName);

$sql = "
    UPDATE ma_Timeline

    SET
    TimelineID              = :timeline_id, #PrimeKey
    EntryID                 = :entry_id,
    EntryTitle              = :entry_title,
    EntryDate               = :entry_date,
    EntryDescription        = :entry_desc,
    CharTag                 = :char_tag

    WHERE EntryID           = :entry_id";

$stmt = $db->prepare($sql);

//The Primary Key of the row that we want to update.
$stmt->bindValue(':timeline_id',  $TimelineID,              PDO::PARAM_STR); #INT - PrimeKey
$stmt->bindValue(':EntryID',      $EntryID,                   PDO::PARAM_INT);

$stmt->bindValue(':entry_title',  $EntryTitle,              PDO::PARAM_STR);
$stmt->bindValue(':entry_date',   $EntryDate,                   PDO::PARAM_STR);
$stmt->bindValue(':entry_desc',   $EntryDescription,            PDO::PARAM_STR);
$stmt->bindValue(':char_tag',     $CharTag,                 PDO::PARAM_STR);
//INTEGER EXAMPLE $stmt->bindValue(1, $id, PDO::PARAM_INT);


try {$stmt->execute();} catch(PDOException $ex) {trigger_error($ex->getMessage(), E_USER_ERROR);}
#feedback success or failure of update

if ($stmt->rowCount() > 0)
{//success!  provide feedback, chance to change another!
    feedback("Event Revised Successfully!","success");
}else{//Problem!  Provide feedback!
    feedback("Event NOT REVISED!","warning");
}

myRedirect(THIS_PAGE);

}

0 个答案:

没有答案