gpt4 book ai didi

PHP 对 SHOW TABLES 结果运行查询

转载 作者:行者123 更新时间:2023-11-29 20:35:04 25 4
gpt4 key购买 nike

如何对先前 SHOW TABLES 查询中的表运行查询?我想做的是创建一个每 24 小时运行一次的 PHP 脚本,对数据库中的每个表按“已验证”降序和“投票”降序对表进行排序,并更新顶部结果的“nomnom”。

$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 clan=@clan";
$conn->query($sql);
echo $row[0] . ' done<br>';
}
} else {
echo 'query 0';
}

这正确地回显了每个表名后跟完成,但实际上并没有更新表。我错过了什么?

更新

所以我确定以下方法应该有效:

$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`=@clan";

通过回显 $sql 并运行通过 phpmyadmin 返回的查询,而不进行任何更改。这是回显的一行。

SET @clan := (SELECT clan FROM aerngardh ORDER BY verified DESC, votes DESC LIMIT 1); UPDATE aerngardh SET nomnom=0, verified=0; UPDATE aerngardh SET nomnom=1 WHERE clan=@clan

它只是由于某种原因在使用时实际上并没有这样做

$conn->query($sql); 

更新2

想出了一个让它发挥作用的方法。会标记我的答案,但我不能在两天内...

最佳答案

尝试这个查询

$sql = SET @clan := (SELECT clan FROM aerngardh ORDER BY verified DESC, votes DESC LIMIT 1); UPDATE aerngardh SET nomnom=0, verified=0; UPDATE aerngardh SET nomnom=1 WHERE clan=@clan

这应该有效

关于PHP 对 SHOW TABLES 结果运行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38833699/

25 4 0