gpt4 book ai didi

php - 优化 PHP 脚本

转载 作者:行者123 更新时间:2023-11-30 00:33:30 26 4
gpt4 key购买 nike

我有一个工作脚本,可以选择所有表中的图像字段,并在物理文件不存在时清空它们的值。

$query1 = "SELECT table_name,column_name
FROM information_schema.columns
WHERE table_schema='schemaname' AND column_name like '%image%' or column_name='video'";

$result1 = mysql_query($query1) or die(mysql_error() . " -- " . $query1);

while($row1 = mysql_fetch_row($result1)){
if (!strpos($row1[0],'backup') > 0){
$sql = "Select COLUMN_NAME FROM information_schema.columns WHERE TABLE_NAME = '".$row1[0]."' AND EXTRA = 'auto_increment'";
$resultcol = mysql_query($sql);
$rowcol = mysql_fetch_row($resultcol);

$query2 = "SELECT " . $row1[1] . ", " .$rowcol[0] . "
FROM " . $row1[0] . "
WHERE " . $row1[1] . " != '' AND " . $row1[1] . " IS NOT NULL
";
echo $query2 . "<br>";
$result2 = mysql_query($query2) or die(mysql_error() . " -- " . $query2);

while ($rowdb = mysql_fetch_row($result2)){

if (!strpos($rowdb[0],'facebook') > 0 && !file_exists($img_root.'/'.$rowdb[0])){


$sql = "UPDATE ".$row1[0]." SET ". $row1[1] . " = '' WHERE " . $rowcol[0]. "= ".$rowdb[1];
echo $sql . "<br><br>";
$delete_count++;
//mysql_query("UPDATE ".$row1[0]." SET ". $row1[1] . " = '' WHERE id = ".$row1["id"]);
}
}
}
}

该脚本运行良好,但需要时间,我想知道是否有更智能的方法(更优化)来获得相同的功能?谢谢

最佳答案

您有多种选择。

第一个,恕我直言,最好的选择 - 是使用 ORM -我推荐 Idiorm、Doctrine 或 Propel。

然后,您将使用类似(惯用语)fetch_all 的内容并循环遍历它,而不是通过 mysql_fetch_row()

其次,您应该切换到 mysqli ——您正在使用的函数在 PHP5.5 中已弃用

第三——你可以使用mysql_fetch_arraymysql_fetch_all(我不确定,但我会使用后者)

这里的关键是:

不要循环 mysql 函数。

关于php - 优化 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22354551/

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