2015-07-22 2 views
0

Во-первых, мне сказали, что я использую устаревший MySQL и должен использовать MySQLi, но я не совсем уверен, как перейти.Обновите свой PHP API

Кроме того, чтобы дополнительно объяснить этот API, он отображает статистику игрока при поиске имени. По какой-то причине в фоновом режиме он запрашивает мой url/0 и делает загрузку страницы крайне медленной.

В любом случае, вот мой api.php. Может ли кто-нибудь дать мне пример MySQLi?

<?php 
// EPICMC CMS API 

$date1 = new DateTime('NOW'); 
$date2 = new DateTime('12/12/2014'); 

$difference = $date1->diff($date2)->days; 

$link = mysql_connect("localhost", "username", "password"); 
mysql_select_db("database", $link); 
if ($_GET['task'] == 'total') { 
    $get_db = 'database'; 
    $result = mysql_query("SELECT * FROM $get_db", $link); 

    echo '{"task":"total","amount":"'; 
    echo mysql_num_rows($result); 
    echo '"}'; 
} elseif ($_GET['task'] == 'info') { 
    $get_player = $_GET['player']; 
    $get_db  = 'simpleauth_players'; 
    $result  = mysql_query("SELECT * FROM $get_db WHERE name = '" . mysql_real_escape_string($get_player) . "'", $link); 
    while ($data = mysql_fetch_array($result)) { 
     echo '{"task":"view","registered":"'; 
     echo date('m/d/Y h:i A', $data['registerdate']); 
     echo '","verified":"'; 
     echo $data['verified']; 
     echo '","banned":"'; 
     echo $data['banned']; 
     echo '","locked":"'; 
     echo $data['locked']; 
     echo '","theme":"'; 
     echo $data['theme']; 
     echo '","email":"'; 
     echo $data['email']; 
     echo '","cover":"'; 
     echo $data['cover']; 
     echo '","ip":"'; 
     echo $data['lastip']; 

     echo '","lastlogin":"'; 
     echo date('m/d/Y h:i A', $data['logindate']); 
     echo '","ip":"'; 
     echo $data['lastip']; 
     echo '"}'; 
    } 
} elseif ($_GET['task'] == 'stats') { 
    $get_player = $_GET['player']; 
    $get_db  = 'player_stats'; 
    $result  = mysql_query("SELECT * FROM $get_db WHERE name = '" . mysql_real_escape_string($get_player) . "'", $link); 
    while ($data = mysql_fetch_array($result)) { 

if($data['skin'] == null){ 
            $skin = $data['name']; 
            } else { 
            $skin = $data['skin']; 
            } 

     echo json_encode(array(
      'task' => 'viewstats', 
      'skin' => $skin, 
      'deaths' => $data['deaths'], 
      'kills' => $data['kills'], 
      'joins' => $data['joins'], 
      'quits' => $data['quits'], 
      'kicked' => $data['kicked'], 
      'places' => $data['places'], 
      'breaks' => $data['breaks'], 
      'chats' => $data['chats'], 


      // then ratio 
      'ratio' => $data['kills']/$data['deaths'] 
     )); 
    } 
} elseif ($_GET['task'] == 'login') { 
    $get_user = $_GET['user']; 
    $get_db = 'simpleauth_players'; 
    $result = mysql_query("SELECT * FROM $get_db WHERE name = '" . mysql_real_escape_string($get_user) . "'", $link); 
    while ($data = mysql_fetch_array($result)) { 
     echo '{"task":"login","password":"'; 
     echo $data['hash']; 
     echo '","lastip":"'; 
     echo $data['lastip']; 
     echo '","timestamp":"'; 
     echo $data['logindate']; 
     echo '"}'; 
    } 
} else { 
    echo 'online'; 
} 
function hashME($player, $password) 
{ 
    return bin2hex(hash("sha512", $password . strtolower($player), true)^hash("whirlpool", strtolower($player) . $password, true)); 
} 
?> 
+0

Я хотел бы начать с создания переключателя о вашей $ _GET [ «задачи»]. Затем создайте функции для вызова на основе задачи. Также PDO стоит посмотреть. – Rob

+1

Что вы пытались выполнить для миграции? Я имею в виду, что документы mysqli довольно прямолинейны. – SuperDJ

+3

Этот сайт предназначен для вопросов программирования. Мы НЕ являемся сервисом перевода кода, и есть примеры перенаправления mysql-> mysqli по всему Интернету. –

ответ

-1

basicaly база данных идет перед запросами вот ваш обновленный код:

<?php 
// EPICMC CMS API 

$date1 = new DateTime('NOW'); 
$date2 = new DateTime('12/12/2014'); 

$difference = $date1->diff($date2)->days; 

$link = mysqli_connect("localhost", "username", "password", "database"); 
if ($_GET['task'] == 'total') { 
    $get_db = 'database'; 
    $result = mysqli_query($link, "SELECT * FROM $get_db"); 

    echo '{"task":"total","amount":"'; 
    echo mysqli_num_rows($result); 
    echo '"}'; 
} elseif ($_GET['task'] == 'info') { 
    $get_player = $_GET['player']; 
    $get_db  = 'simpleauth_players'; 
    $result  = mysqli_query($link, "SELECT * FROM $get_db WHERE name = '" . mysqli_real_escape_string($link, $get_player) . "'"); 
    while ($data = mysqli_fetch_array($result)) { 
     echo '{"task":"view","registered":"'; 
     echo date('m/d/Y h:i A', $data['registerdate']); 
     echo '","verified":"'; 
     echo $data['verified']; 
     echo '","banned":"'; 
     echo $data['banned']; 
     echo '","locked":"'; 
     echo $data['locked']; 
     echo '","theme":"'; 
     echo $data['theme']; 
     echo '","email":"'; 
     echo $data['email']; 
     echo '","cover":"'; 
     echo $data['cover']; 
     echo '","ip":"'; 
     echo $data['lastip']; 

     echo '","lastlogin":"'; 
     echo date('m/d/Y h:i A', $data['logindate']); 
     echo '","ip":"'; 
     echo $data['lastip']; 
     echo '"}'; 
    } 
} elseif ($_GET['task'] == 'stats') { 
    $get_player = $_GET['player']; 
    $get_db  = 'player_stats'; 
    $result  = mysqli_query($link, "SELECT * FROM $get_db WHERE name = '" . mysqli_real_escape_string($link, $get_player) . "'"); 
    while ($data = mysqli_fetch_array($result)) { 

if($data['skin'] == null){ 
            $skin = $data['name']; 
            } else { 
            $skin = $data['skin']; 
            } 

     echo json_encode(array(
      'task' => 'viewstats', 
      'skin' => $skin, 
      'deaths' => $data['deaths'], 
      'kills' => $data['kills'], 
      'joins' => $data['joins'], 
      'quits' => $data['quits'], 
      'kicked' => $data['kicked'], 
      'places' => $data['places'], 
      'breaks' => $data['breaks'], 
      'chats' => $data['chats'], 


      // then ratio 
      'ratio' => $data['kills']/$data['deaths'] 
     )); 
    } 
} elseif ($_GET['task'] == 'login') { 
    $get_user = $_GET['user']; 
    $get_db = 'simpleauth_players'; 
    $result = mysqli_query($link, "SELECT * FROM $get_db WHERE name = '" . mysqli_real_escape_string($link, $get_user) . "'"); 
    while ($data = mysqli_fetch_array($result)) { 
     echo '{"task":"login","password":"'; 
     echo $data['hash']; 
     echo '","lastip":"'; 
     echo $data['lastip']; 
     echo '","timestamp":"'; 
     echo $data['logindate']; 
     echo '"}'; 
    } 
} else { 
    echo 'online'; 
} 
function hashME($player, $password) 
{ 
    return bin2hex(hash("sha512", $password . strtolower($player), true)^hash("whirlpool", strtolower($player) . $password, true)); 
} 
?> 
+0

Онлайновые документы сделали это намного сложнее. –

+0

Это не сработало? LOL я сказал, что, потому что я прямо изучил MySQLi, и это было единственное различие, которое я видел между ними, поэтому ... –

+0

Это сработало. Я просто не знал, что решение будет настолько простым. Спасибо за вашу помощь :) –