我从一位客户那里继承了一个php/mysqli数据库网站,但该网站存在严重问题
这是一个php文件,用于管理导致严重服务器性能问题和站点上“连接太多”sql错误的旋转广告。下面是php脚本。谁能给我一些关于如何纠正这一点的见解,因为我是php的新手我从一位客户那里继承了一个php/mysqli数据库网站,但该网站存在严重问题,php,mysqli,connection,Php,Mysqli,Connection,这是一个php文件,用于管理导致严重服务器性能问题和站点上“连接太多”sql错误的旋转广告。下面是php脚本。谁能给我一些关于如何纠正这一点的见解,因为我是php的新手 <? require("../../admin/lib/config.php"); // connect to database mysql_pconnect(DB_HOST,DB_USER,DB_PASS); mysql_select_db(DB_NAME); $i = 1; function gr
<?
require("../../admin/lib/config.php");
// connect to database
mysql_pconnect(DB_HOST,DB_USER,DB_PASS);
mysql_select_db(DB_NAME);
$i = 1;
function grab()
{
$getBanner = mysql_query("SELECT * FROM sponsor WHERE active='Y' AND ID != 999 AND bannerRotation = '0' ORDER BY RAND() LIMIT 1");
$banner = mysql_fetch_array($getBanner);
if ($banner['ID'] == ''){
mysql_query("UPDATE sponsor SET bannerRotation = '0'");
}
if (file_exists(AD_PATH . $banner['ID'] . ".jpg")){
$hasAd = 1;
}
if (file_exists(BANNER_PATH . $banner['ID'] . ".jpg")){
return "$banner[ID],$hasAd";
} else {
return 0;
}
}
while ($i <= 3){
$banner = grab();
if ($banner != 0){
$banner = explode(",",$banner);
mysql_query("UPDATE sponsor SET bannerView = bannerView + 1 WHERE ID='$banner[0]'");
mysql_query("UPDATE sponsor SET bannerRotation = '1' WHERE ID = '$banner[0]'");
echo "banner$i=$banner[0]&hasAd$i=$banner[1]&";
$i++;
}
}
?>
哎呀
正在从循环中调用grab()
,但未参数化。似乎也没有任何理由一再这样称呼它
200%的加速比很容易实现。耶
正在从循环中调用grab()
,但未参数化。似乎也没有任何理由一再这样称呼它
200%的加速比是很容易实现的。我看不到mysqli
问题是,mysql\u pconnect()
打开了一个到数据库的持久连接,并且在执行结束时没有关闭,因为您没有在任何地方调用mysql\u close(),所以连接永远不会关闭
全部都在手册中:我看不到mysqli
问题是,mysql\u pconnect()
打开了一个到数据库的持久连接,并且在执行结束时没有关闭,因为您没有在任何地方调用mysql\u close(),所以连接永远不会关闭
这一切都在手册中:好吧,对于您的客户来说,好消息是之前的开发人员放弃了该项目。如果他继续努力的话,他只会造成更大的伤害
- 此脚本使用的是ext/mysql,而不是ext/mysqli。最好使用mysqli或PDO_-mysql,因为
- 建议使用完整的PHP开放标记语法(
)好吧,对于您的客户来说,好消息是之前的开发人员放弃了该项目。如果他继续工作,他可能会造成更大的损害
- 这个脚本使用的是ext/mysql,而不是ext/mysqli
- 建议使用完整的PHP开放标记语法(
即使没有脚本,我也会检查慢速查询日志,看看是否有持续导致问题或频繁运行的查询。如果有慢速运行的查询,它会使问题更加复杂。这是一个起点,在代码可用之前,很难真正确定。抱歉,我想我已经发布了它ed now。即使没有脚本,我也会检查慢速查询日志,看看是否有持续导致问题或频繁运行的查询。如果有慢速运行的查询,它运行的次数越多,问题就越复杂。这是一个起点,在代码可用之前,很难真正确定。抱歉,我想我已经发布了它ed now.是的,这是由另一个放弃cusgtomer的web开发人员创建的,现在我正在尝试清理它并使其工作。你可以在webrodder.com上看到该网站。旋转广告正在工作,但现在不工作。有人对此有简单的修复方法吗?是的,这是由另一个放弃cusgtomer的web开发人员创建的,现在我正在尝试你可以在webrodder.com上看到这个网站。旋转广告一直在工作,但现在没有。有人对此有一个简单的解决方法吗?因此,将其更改为mysql_connect(),并在启动时用mysql_close()关闭脚本将纠正持久连接?我想,这也会纠正错误我得到的“连接太多”错误。如果使用mysql\u connect()
调用mysql\u close()
将没有任何用处,因为它在执行结束时已关闭。我建议使用mysqli或PDO,因为mysql\u*函数正在弃用过程中。因此将其更改为mysql\u connect()使用mysql\u close()在bootn处关闭脚本将纠正持久连接?我想,这也将纠正我遇到的“连接太多”错误。如果使用mysql\u connect()
调用mysql\u close()将没有用
反正它在执行结束时就关闭了。我建议使用mysqli或PDO,因为mysqli的函数正在被弃用。谢谢比尔的教育,我很感激。我会做这些改变。我讨厌收拾别人的烂摊子。我感觉到你的痛苦。我们都在那里。谢谢比尔的教育,我很感激我会努力改变的。我讨厌收拾别人的烂摊子。我感觉到你的痛苦。我们都经历过。