0
我的第一個查詢是這樣的:查詢將不會更新,使用PHP PDO
$sql = "UPDATE application SET userid = ? WHERE appid = ? LIMIT 1";
我的第二個查詢是這樣的:
SELECT user.name,application.appid,application.userid,application.created,application.title,application.filesize,application.status,application.apptype
FROM user,application
WHERE application.appid = ? LIMIT 1
然後第二個查詢使用存儲$statement->fetchObject()
問題是$statement->name
總是bob
。 application.userid
是表user
中的userid
的外鍵。如果我更改表application
中的userid
,可以說10
,則查詢2應該從新的userid
上的表user
獲得名稱,但問題是它一直告訴我$statement->name
是bob
。
if (isset($_POST['newowner']))
{
$newowner = $_POST['newowner'];
$sql = "SELECT COUNT(*) FROM user
WHERE userid = ? LIMIT 1";
$statement = $db->prepare($sql);
$statement->execute(array($newowner));
if ($statement->fetchColumn() > 0)
{
$sql = "UPDATE application SET userid = ?
WHERE appid = ? LIMIT 1";
$statement = $db->prepare($sql);
$statement->execute(array($newowner,$_GET['appid']));
$appdetail->msg = "Owners were successfully changed.";
$appdetail->type = "success";
}
else
{
$appdetail->msg = "Could not find client by that userid or email.";
$appdetail->type = "warning";
}
}
$sql = "SELECT user.name,application.appid,application.userid,application.created,application.title,application.filesize,application.status,application.apptype
FROM user,application
WHERE application.appid = ? LIMIT 1";
$statement = $db->prepare($sql);
$statement->execute(array($_GET['appid']));
$app = $statement->fetchObject();
該行正在更新。我通過phpmyadmin進行了檢查。 – user962449
另外兩種可能性:您的PHP代碼存在錯誤(我們可以看到它嗎?),或者您正在事務中操作並需要首先提交(如果您在phpmyadmin中修改了行,您的選擇會發生變化嗎?)。我的猜測是這是第一例。 – halfer
*增加了 其餘的代碼只是輸出。沒有語法錯誤。 – user962449