我創建了一個表單,其中包含一個具有自動完成功能的輸入字段,另一個輸入字段被設置爲只讀。在一個過程中在不同表格中插入和更新
<div id="windowContent">
<form action="rdpw_monitoring_process.php" method="post">
<table cellpadding="10px">
<tr>
<td>Username</td>
<td><input type="text" class="form-control" style="padding-left:5px;" name="auto_username_rdpw" id="auto_username_rdpw" class="auto_username_rdpw" /></td>
</tr>
<tr>
<td>Default Password</td>
<td><input type="text" value="nccc2016" class="form-control" name="default_password_rdpw" id="default_password_rdpw" readonly="readonly" /></td>
</tr>
</table>
<br />
<div style="padding-right:100px; float:right;"><input type="submit" name="reset" value="RESET" id="reset" class="reset btn btn-info" /></div>
</form>
</div>
當我把一個用戶名並點擊提交按鈕,它會自動更新一些字段的表1(tbl_userlist),那麼它會插入從已更新的領域基地表1(tbl_userlist)的用戶ID。我的更新查詢正在工作,但我的插入查詢不起作用。是否有可能在一個進程中將插入和更新查詢結合到不同的表中,就像我下面的進程代碼一樣?
<?php
include('connection.php');
$autocomplete_username = $_POST['auto_username_rdpw'];
$default_password = $_POST['default_password_rdpw'];
$pdo = new PDO('mysql:host=localhost;dbname=etransmittal', 'root', '');
date_default_timezone_set('Asia/Hong_Kong');
$current_date = date('Y-m-d H:i:s');
$date_expiration_ninety_days = date('Y-m-d H:i:s', strtotime("+90 days"));
$update_qry = $pdo->prepare("UPDATE tbl_userlist SET user_password = :default_password, lastdate_changepw = :date_change_password, password_expiration = :password_date_expiration WHERE username = :username");
$insert_qry = $pdo->prepare("INSERT INTO tbl_reset_change_expire_password (userid, lastdate_resetpw)
VALUES ((SELECT userid FROM tbl_userlist WHERE lastdate_changepw = :change_password_date LIMIT 1), $current_date)");
if($update_qry->execute(array(':default_password' => $default_password, ':date_change_password' => $current_date, ':password_date_expiration' => $date_expiration_ninety_days, ':username' => $autocomplete_username))){
echo "You have successfully edit into default password";
}
else{
echo 'Failed to reset default password.';
}
$insert_qry->execute(array(':change_password_date' => $current_date));
?>
這是一個有點不清楚,你要完成什麼。 「在一個進程中將插入和更新查詢結合到不同表中,就像我的進程代碼一樣」是什麼意思?你的意思是你想要做一個SQL查詢,一次插入和更新? (因爲你想讓它們成爲原子嗎?或者因爲你只想對數據庫執行一個查詢?) – jbafford
嗯,這是可能的@pvegetah –
這可能有助於[多個語句在一個查詢中](http://stackoverflow.com/ question/11632902/mysqli-can-it-prepare-multiple-queries-in-one-statement) –