簡體   English   中英

無限循環? 遺漏了什么? 我不知道發生了什么錯誤:500次超時(不應該發生)

[英]Infinate loop? Missing something? I don't know what going on Error: 500 time out (Shouldn't be happening)

我正在嘗試創建一個PHP腳本,該腳本將撕碎一個Json文件並將其排序並發送到數據庫,但是我不明白為什么會這樣:我曾經遇到一個錯誤,說我超出了PHP的RAM限制(將其設置為無限制),但是現在出現超時錯誤。 我有一種感覺,它是我的代碼而不是服務器,但是在哪里,而while循環不是無限循環,我看不到任何錯誤。

<?php

    //Set Ram Limit to Unlimited
    ini_set('memory_limit', '-1');

    //Improper Variables.
    $tags = '';
    $minTags = 1;
    $value = '';

    //Initialize Database Variables.
    $host = 'localhost';
    $username = 'icangame_dataa';
    $password = '**********************************';
    $dbname = 'icangame_data';

    //Get Game Content
    $linkFolder = $_POST['linkToFile'];
    $file = '../games/'.$linkFolder.'/__metadata__.json';
    $json = json_decode(file_get_contents($file), true);

    //Take Apart the JSon
    $width = $json['width'];
    $height = $json['height'];
    $author = $json['author'];
    $thumbnail_url = $json['thumbnail_url'];
    $description = $json['description'];
    $controls = $json['controls'];
    $developer = $json['developer'];
    $name = $json['name'];
    $developer_url = $json['developer_url'];
    $tagsArray = $json['tags'];

    //Process My Tags
    $tagsNum = count($tagArray);

    while ($minTags > $tagsNum) 
    {

        $tagsTricky = "'.tags.'";
        $minTagsTricky = "'".$minTags."'";
        $value = $json[$tagsTricky[$minTags]];
        $tags.=$value.' ';
        $minTags++;

    }

    //Database Connection
    $myCon = mysqli_connect($host, $username, $password, $dbname);

    if (mysqli_connect_errno($myCon))
    {

        echo "Error Connection:".mysqli_connect_error();

    }

    //Checking if Item already exists.
    $gameItem = mysqli_query($con,"SELECT $name FROM gameList");

    if (!$gameItem == $name)
    {

        //Sending Data to Database.
        mysqli_query($myCon, "INSERT INTO gameList (width, height, author, thumbnail_url, description, controls, developer, name, developer_url, tags) 
            VALUES ('$width', '$height', '$author', '$thumbnail_url', '$description', '$controls', '$developer', '$name', '$developer_url', '$tags')");

    } 
    else
    {

        echo "Item ".$name." already exists! Sorry, someone beat you to it. ;c";

    }



?>

如果條件在

 while ($minTags > $tagsNum) 

true並輸入循環體,然后

 $minTags++; 

將確保條件在下一次迭代時也true ,因為$tagsNum不會在循環主體中修改。 您有無限循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM