gpt4 book ai didi

PHP更新大型数据库

转载 作者:搜寻专家 更新时间:2023-10-30 22:15:23 25 4
gpt4 key购买 nike

我有一个大型数据库(这个特定表中有 28k 个条目),我需要将一些 HTML 标记附加到表中每一列的前面和后面。

这是我的代码:

try
{
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
if(!$conn)
{
echo "Error in connecting to the database.";
}
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );

$query = $conn->query("SELECT `id`, `introtext` FROM *TABLE* WHERE id >= 41155");
$query->setFetchMode(PDO::FETCH_OBJ);

//For each row in the table
while($row = $query->fetch())
{
$introtext = '<span class="*SPAN CLASS*">' . $row->introtext . '</span>';
$update_query = $conn->prepare("UPDATE *TABLE* SET introtext = ? WHERE id = ?");

if ($query->execute(array($introtext, $row->id)))
echo $row->id . " Done <br>";
else
echo $row->id . " Err<br>";
}

} catch(PDOexception $e) {
echo $e->getMessage();
}

$conn = null;

当我运行脚本时,它输出 41155 Done 4132 次。我不确定这里的逻辑,但感谢任何有助于实现此工作的帮助。

最佳答案

我同意 Dagon 的观点,数据库不是解决这个问题的地方(如果明天你决定 <span> 应该包装另一个 HTML 标签怎么办?)。

反正听上去是一次性的操作,所以我不会用PHP。只需运行 MySQL 客户端(命令行 mysql 或 Workbench,并使用如下查询:

UPDATE *TABLE* 
SET introtext = CONCAT('<span class="*SPAN CLASS*">', introtext, '</span>')
WHERE id >= 41155

请注意您当前的代码:您永远不会执行 UPDATE询问!你只是prepare语句,而不是执行 $update_query ,你正在执行 $query再次!这就是为什么您总是打印相同的 ID。

关于PHP更新大型数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13924739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com