2014-03-04 72 views
0

上午是準備好的語句和PDO的新功能。我有一個腳本有兩個準備好的語句,插入語句工作正常,但更新沒有。它不會返回錯誤並顯示成功消息,但它不會更新數據庫。PDO準備的語句更新不起作用

這是不起作用的代碼。任何幫助wouild將不勝感激。由於

$queryString="UPDATE team_directory SET team_name=':team_name', 
aka=':aka', 
website=':website', 
main_contact=':main_contact', 
phone=':phone', 
email=':email', 
other=':other', 
np1=':np1', 
np2=':np2', 
np3=':np3', 
np4=':np4', 
np5=':np5', 
np6=':np6', 
np7=':np7', 
np8=':np8', 
np9=':np9', 
np10=':np10', 
np11=':np11', 
np12=':np12' 
where team_id=':team_id'"; 

$query=$database->prepare($queryString); 
$query->execute(array(':team_name'=>$team_name, 
':aka'=>$aka, 
':website'=>$website, 
':main_contact'=>$main_contact, 
':phone'=>$phone, 
':email'=>$email, 
':other'=>$other, 
':np1'=>$np1, 
':np2'=>$np2, 
':np3'=>$np3, 
':np4'=>$np4, 
':np5'=>$np5, 
':np6'=>$np6, 
':np7'=>$np7, 
':np8'=>$np8, 
':np9'=>$np9, 
':np10'=>$np10, 
':np11'=>$np11, 
':np12'=>$np12, 
':team_id'=>$team_id)); 

if ($query->errorCode()==0) { 




    echo "<p>Team amended successfully, <a href=\"select_amend_team.php\">Amend Another</a> </p> 
    <p><a href=\"admin_team_directory.php\">Team Directory</a></p> 
    <p><a href=\"admin_home.php\">Admin Homepage</a></p>"; 
} 

else { 
    $errors=$query->errorInfo(); 
    echo ($errors[2]); 
} 
+4

':placeholders'不屬於單引號括起來。這將使他們字面值的字符串。 – mario

+0

即使在執行數組?我的插頁staement有他們的引號,但工程 – DJC

回答

1

簡單地採取佔位符(變量您要被使用事先準備好的聲明標記)出那些邪惡的報價:

$queryString="UPDATE team_directory SET team_name = :team_name, 
    aka = :aka, 
    website = :website, 
    main_contact = :main_contact, 
    phone = :phone, 
    email = :email, 
    other = :other, 
    np1 = :np1, 
    np2 = :np2, 
    np3 = :np3, 
    np4 = :np4, 
    np5 = :np5, 
    np6 = :np6, 
    np7 = :np7, 
    np8 = :np8, 
    np9 = :np9, 
    np10 = :np10, 
    np11 = :np11, 
    np12 = :np12 
    where team_id = :team_id"; 
+0

謝謝。但是,我把它們放在執行數組中的引號中嗎? – DJC

+1

@ user2933231哦,是的。 PHP和SQL是不同的。請不要混淆他們兩個。 – hjpotter92