2017-09-01 60 views
1
$conn->query("UPDATE users SET totalClicks = totalClicks + 1 WHERE id = '$uid'"); 


$conn->query("UPDATE link SET clicks = clicks + 1 WHERE userid = '$uid' AND id = '$id'"); 


$conn->query("UPDATE data SET total_actions_3 = total_actions_3 + 1"); 

我想把所有這3個查詢放到一個準備好的語句中,怎麼做?如何在一個查詢中合併多個UPDATE語句?

+3

**警告**:這有一些嚴重的[SQL注入漏洞](http://bobby-tables.com/),因爲用戶數據在查詢中使用。儘可能使用**準備好的陳述**。這些在['mysqli'](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和[PDO](http://php.net/manual/)中很簡單en/pdo.prepared-statements.php)其中任何用戶提供的數據都是用'?'或':name'指示符指定的,後者使用'bind_param'或'execute'填充,具體取決於您使用的是哪一個。 **絕不**將'$ _POST','$ _GET'或任何用戶數據直接放入您的查詢中。 – tadman

+1

這是你正在更新的三張不同的表格。爲什麼不保持這種方式並將它們包裝在「BEGIN TRANSACTION」中? – tadman

+0

請嘗試考慮使用mysql存儲過程。但是總是將業務邏輯放在數據庫上並不是一個好主意。 –

回答

0

結合它們不是一個好主意。保持他們的方式。

相關問題