2
我從tab1
中選擇數據到一個變量,並在另一個查詢中使用它,該查詢更新tab1
。目標列target
屬於INT類型,因此在設置之前將其舍入。在PDO中的Mysql變量和多個查詢。更新查詢不起作用
它在mysql工作臺上運行良好,php也沒有錯誤(error_reporting設置爲-1)。它只是不真正更新目標列 - 它保持爲零。
任何想法爲什麼?
$q = 'SELECT @tmp = (SELECT t
FROM tab1
WHERE a_id = :id1);
UPDATE tab1
SET target = (SELECT ROUND(@tmp/(SELECT COUNT(*)
FROM tab2
WHERE b_id = :id2)));
';
$sth = $dbh->prepare($q);
$sth->execute(array(':id1' => $id, ':id2' => $id));
[*您不能使用相同的名稱的命名參數標記準備好的聲明中有兩次*](http://php.net/manual/pdo.prepare.php)。此外,爲了支持多重查詢,您需要確保將「PDO :: ATTR_EMULATE_PREPARES」屬性設置爲「true」 – Phil
「PDO :: ATTR_EMULATE_PREPARES」設置爲「1」。此外,只是試圖重命名命名參數,仍然沒有成功。非常感謝您的時間! – notnull
請在上面的問題中反映任何代碼更改。另外,您的PDO連接使用什麼錯誤模式?編輯代碼 – Phil