php - MYSQLI 搜索查询使 GoDaddy 网站服务器崩溃

标签 php mysql ajax search mysqli

我的搜索查询有问题,在多次输入搜索后,网站崩溃了,我不确定这是由于我在 GoDaddy 购买的 RAM 不足还是我的搜索查询抛出了错误错误或需要太多资源。

请您在此处测试搜索:http://cameras.specced.co.uk

请输入多个不同的相机型号并执行此操作多次,然后搜索查询将停止工作,并且该网站将不再工作。

这是搜索查询:

$model_search_query = $cameras_pdo->prepare("SELECT * FROM models WHERE concat_ws(' ',brand_name,model) LIKE :search LIMIT 5");
$model_search_query->execute(array(':search' => "%" . $_POST['search'] . "%"));

while ($model_search = $model_search_query->fetch(PDO::FETCH_ASSOC)) {
    $brand_search_query = "SELECT brand FROM brands WHERE id =" . $model_search['brand']; 
    $brand_search = mysqli_fetch_assoc(mysqli_query($cameras, $brand_search_query)); ?>

        <a href="compare.php?compare_1=<?php echo $model_search['id'];?>">



        <div class="search_result">
            <div class="search_result_image">
                <!--  IMAGE REMOVED TO TEST IF THIS WAS CAUSING THE ISSUE -->
            </div>

            <div class="search_result_text">
                <?php echo $brand_search['brand'] . " " . $model_search['model']; ?>
            </div>
        </div>
    </a>
 <?php } ?>

我已经从搜索结果中删除了该图像,以防它太大并且在下拉搜索中同时加载太多图像导致问题,但是仅搜索几次后网站仍然崩溃。

这是我在 Safari 中收到的错误,

Safari 无法打开...因为服务器意外断开连接...

感谢您的帮助

编辑:

这是当用户在标题中的右上角搜索栏 http://cameras.specced.co.uk 进行搜索时,AJAX 包含的 fetch.php 的全部内容。

<?php ini_set('display_errors', 'On'); ?>

<!-- REQUIRE DB -->
<?php 
    $servername = "xxx";
    $username = "xxx";
    $password = "xxx";
    $dbname = "xxx";
?>
<?php
    $cameras = mysqli_connect($servername, $username, $password, $dbname);

    $cameras_pdo = new PDO('mysql:host=xxx;dbname=xxx', 'xxx', 'xxx'); 
?>


<?php 


    $model_search_query = $cameras_pdo->prepare("SELECT * FROM models WHERE concat_ws(' ',brand_name,model) LIKE :search LIMIT 5");
    $model_search_query->execute(array(':search' => "%" . $_POST['search'] . "%"));

    while ($model_search = $model_search_query->fetch(PDO::FETCH_ASSOC)) {
        $brand_search_query = "SELECT brand FROM brands WHERE id =" . $model_search['brand']; 
        $brand_search = mysqli_fetch_assoc(mysqli_query($cameras, $brand_search_query));
p?1=' . $_POST['current'] . "&2=" . $model_search['id'] . '">'; 

            echo '<a href="compare.php?compare_1=' . $model_search['id'] . '">'. 

            '<div class="search_result">' .
                '<div class="search_result_image">' .
                    '<img src="http://www.specced.co.uk/images/cameras/[' . $model_search['id'] . ']_front.png">' .
                '</div>' .

                '<div class="search_result_text">' .
                    $brand_search['brand'] . " " . $model_search['model'] . 
                '</div>' .
            '</div>' .
        '</a>';
    }

?>

最佳答案

当网站停止响应时,如果您检查浏览器网络面板中的开发人员控制台并检查 fetch.php 的响应,您将看到最后一个 HTTP 200 响应仅包含以下内容:

<!-- REQUIRE DB -->

后续请求为空。因此,我猜测 PHP 在尝试建立数据库连接时会死掉。检查您的 error_log 并将您的错误作为评论发布在这里!完成后是否关闭数据库连接?

关于php - MYSQLI 搜索查询使 GoDaddy 网站服务器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44585864/

相关文章:

php - 如何使页 footer 分仅在我的 WordPress 首页中可见?

php - 如何提高mysql查询的性能?

php - PHP 显示结果中的总列数

mysql 获取捕获正则表达式?

ajax - org.zkoss.zk.device.DeviceNotFoundException : ajax not found

javascript - 在 ASP.NET C# 中获取 .ClientID 的问题

php - 本周热门 - 本月热门 - PHP 功能

c# - 我如何使用 2 个 sql 命令和 1 个阅读器?

php - 获取 URL 数据时推荐系统的重定向问题

javascript - 为什么我对 Printful 的 API 的请求被拒绝访问?