如何開始在以前的SHOW TABLES查詢的表上運行查詢?我想要做的是創建一個每24小時運行一次的PHP腳本,該腳本通過「已驗證」降序和「投票」降序對錶格進行排序,並對頂級結果中的「nomnom」更新數據庫中的每個表格。PHP在SHOW TABLES結果上運行查詢
$result = $conn->query("SHOW TABLES");
if($result->num_rows > 0) {
while($row = $result->fetch_array()) {
$sql = "SET @clan = (SELECT clan FROM " . $row[0] . " ORDER BY verified DESC, votes DESC LIMIT 1); UPDATE " . $row[0] . " SET nomnom=0 verified=0; UPDATE " . $row[0] . " SET nomnom=1 WHERE [email protected]";
$conn->query($sql);
echo $row[0] . ' done<br>';
}
} else {
echo 'query 0';
}
這正確回聲每個表的名稱,然後完成,但實際上並沒有更新的表。我錯過了什麼?
UPDATE
所以我已經確定了以下應工作:
$sql = "SET @clan := (SELECT `clan` FROM " . $row[0] . " ORDER BY `verified` DESC, `votes` DESC LIMIT 1); UPDATE " . $row[0] . " SET `nomnom`=0, `verified`=0; UPDATE " . $row[0] . " SET `nomnom`=1 WHERE `clan`[email protected]";
呼應$ SQL和運行查詢返回通過phpmyadmin在不改變任何東西。 這裏有一條回聲。
SET @clan:=(SELECT
clan
FROM aerngardh ORDER BYverified
DESC,votes
DESC LIMIT 1); UPDATE aerngardh SETnomnom
= 0,verified
= 0; UPDATE aerngardh SETnomnom
= 1 WHEREclan
= @氏族
它只是出於某種原因沒有實際使用
$conn->query($sql);
更新時,2
想出一個辦法來這樣做讓它起作用。將標誌着我的答案,但我不能2天...
嘗試解釋更多。請 –
看起來您在第一個set語句之前缺少更新,我打賭如果您嘗試在phpmysql中運行您的語句,它們將失敗。 – Danimal
您是否嘗試過回顯您的查詢並在db中運行它 – coder