1

I have come to realise mysql_query is deprecated. What do I need to do to fix this? As all of it is MySQL.

Simple fact being I need to recode my whole site before it won't work due to deprecated functions.

if (!$_GET['XID']) {
    $mystats = array();
    $s       = array();
    $mystats = mysql_query ("SELECT * FROM `members_personal` WHERE playerid = '{$_SESSION['playerid']}'");
    $s       = mysql_fetch_array($mystats);
    echo '<center><main>Personal stats</main>
      <hr width="93%">
           <table width = "75%" class = "rounded"><tr><td width=45% valign=top>
              ' . round_table('700') . '<table class = "vnm-table" width=100% cellspacing=1 cellpadding=3>
              <tr bgcolor=#999999><th align="left" width=70%>
              <b>Attacking</b>
              </th><th width=30%></th></tr>
              <tr bgcolor=#DFDFDF>
              <td>Attacks won:</td>
              <td>' . number_format($s['my_attwon']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Attacks lost:</td>
              <td>' . number_format($s['my_attlost']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Attacks stalemated:</td>
              <td>' . number_format($s['my_attstale']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Defends won:</td>
              <td>' . number_format($s['my_defwon']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Defends lost:</td>
              <td>' . number_format($s['my_deflost']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Defends stalemated:</td>
              <td>' . number_format($s['my_defstale']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Win/Loss ratio:</td>
              <td>';

    $attwon        = array();
    $attlost       = array();
    $first_number  = array();
    $second_number = array();
    $div_value     = array();
    $attwon        = $s['my_attwon'] + $s['my_defwon'];
    $attlost       = $s['my_attlost'] + $s['my_deflost'];

    $div_value = "0.0";
    if ($attlost == 0) {
        $attlost = '1';
    }
    $div_value = $attwon / $attlost;

    printf("%01.2f", $div_value);

    echo '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Times ran away:</td>
              <td>' . number_format($s['my_timesran']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Foes ran away:</td>
              <td>' . number_format($s['my_theyran']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Best kill streak:</td>
              <td>' . number_format($s['my_beststreak']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Current kill streak:</td>
              <td>' . number_format($s['my_currstreak']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Hits:</td>
              <td>' . number_format($s['my_hits']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Misses:</td>
              <td>' . number_format($s['my_misses']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Total damage made:</td>
              <td>' . number_format($s['my_totaldamage']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Best damage made:</td>
              <td>' . number_format($s['my_bestdamage']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>One hit kills:</td>
              <td>' . number_format($s['my_onehitkill']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Critical hits:</td>
              <td>' . number_format($s['my_crithits']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Rounds fired:</td>
              <td>' . number_format($s['my_rounds']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Stealth attacks:</td>
              <td>' . number_format($s['my_stealths']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Money mugged:</font></td>
              <td>$' . number_format($s['my_muggain']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Highest level beaten:</td>
              <td>' . number_format($s['my_bestlevel']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Total respect gained:</td>
              <td>' . number_format($s['my_respectgain']) . '</td>
              </tr>
           </table>
Pang
  • 9,564
  • 146
  • 81
  • 122
braidz
  • 45
  • 9
  • 1
    It's **deprecated**. Not **depreciated**. Possible duplicate of http://stackoverflow.com/questions/4598854/how-do-i-migrate-my-site-from-mysql-to-mysqli. – spencer7593 Jan 09 '16 at 06:56
  • I have tried following those Php tuts, but can't hack it, they explain it in a complicated way – braidz Jan 09 '16 at 07:00
  • I used the converter from that thread, and it just keeps giving me a 500 error. Luckily I backed everything up first – braidz Jan 13 '16 at 09:05

3 Answers3

2

As user3284463 suggested, the mysqli_* functions are an easy way update old code without rewriting it completely. They will generally be drop in replacements for their mysql_* counterparts.

That said, if you have the time, I would take rehmat's advice and learn PDO.

Dominic P
  • 2,284
  • 2
  • 27
  • 46
1

I would suggest PDO for dealing with databases securely. To make the move from your old code to PDO, first of all rewrite your DB connection code like this:

$dbhost = '';
$dbname = '';
$dbuser = '';
$dbpass = '';
$pdo = new PDO("mysql:host=".$dbhost.";dbname=".$dbname . ';charset=utf8', $dbuser, $dbpass);

And then rewriting first few lines of your code like this will make it secure and compatible with latest PHP:

<?php
    // just rewrite your query
    $query = $pdo->prepare("SELECT * FROM `members_personal` WHERE playerid = ?");
    $query->bindValue(1, {$_SESSION['playerid']}); // bind playerid securely
    $query->execute(); // execute your query
    $s = $query->fetchAll(); // fetch details from database as array
    // use the same code
    echo '<center><main>Personal stats</main>
      <hr width="93%">
           <table width = "75%" class = "rounded"><tr><td width=45% valign=top>
              ' . round_table('700') . '<table class = "vnm-table" width=100% cellspacing=1 cellpadding=3>
              <tr bgcolor=#999999><th align="left" width=70%>
              <b>Attacking</b>
              </th><th width=30%></th></tr>
              <tr bgcolor=#DFDFDF>
              <td>Attacks won:</td>
              <td>' . number_format($s['my_attwon']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Attacks lost:</td>
              <td>' . number_format($s['my_attlost']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Attacks stalemated:</td>
              <td>' . number_format($s['my_attstale']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Defends won:</td>
              <td>' . number_format($s['my_defwon']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Defends lost:</td>
              <td>' . number_format($s['my_deflost']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Defends stalemated:</td>
              <td>' . number_format($s['my_defstale']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Win/Loss ratio:</td>
              <td>';

    $attwon        = array();
    $attlost       = array();
    $first_number  = array();
    $second_number = array();
    $div_value     = array();
    $attwon        = $s['my_attwon'] + $s['my_defwon'];
    $attlost       = $s['my_attlost'] + $s['my_deflost'];

    $div_value = "0.0";
    if ($attlost == 0) {
        $attlost = '1';
    }
    $div_value = $attwon / $attlost;

    printf("%01.2f", $div_value);

    echo '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Times ran away:</td>
              <td>' . number_format($s['my_timesran']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Foes ran away:</td>
              <td>' . number_format($s['my_theyran']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Best kill streak:</td>
              <td>' . number_format($s['my_beststreak']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Current kill streak:</td>
              <td>' . number_format($s['my_currstreak']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Hits:</td>
              <td>' . number_format($s['my_hits']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Misses:</td>
              <td>' . number_format($s['my_misses']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Total damage made:</td>
              <td>' . number_format($s['my_totaldamage']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Best damage made:</td>
              <td>' . number_format($s['my_bestdamage']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>One hit kills:</td>
              <td>' . number_format($s['my_onehitkill']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Critical hits:</td>
              <td>' . number_format($s['my_crithits']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Rounds fired:</td>
              <td>' . number_format($s['my_rounds']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Stealth attacks:</td>
              <td>' . number_format($s['my_stealths']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Money mugged:</font></td>
              <td>$' . number_format($s['my_muggain']) . '</td>
              </tr><tr bgcolor=#DFDFDF>
              <td>Highest level beaten:</td>
              <td>' . number_format($s['my_bestlevel']) . '</td>
              </tr><tr bgcolor=#CCCCCC>
              <td>Total respect gained:</td>
              <td>' . number_format($s['my_respectgain']) . '</td>
              </tr>
           </table>
Rehmat
  • 4,681
  • 3
  • 22
  • 38
1

You can do this:

$sql="SELECT * FROM `members_personal` WHERE playerid = '{$_SESSION['playerid']}'";
$mystats = mysqli_query($connection,$sql);
$row = mysqli_fetch_array($mystats,MYSQLI_ASSOC);
Ikhlak S.
  • 8,578
  • 10
  • 57
  • 77
  • Let us [continue this discussion in chat](http://chat.stackoverflow.com/rooms/100379/discussion-between-brady-magrath-and-user3284463). – braidz Jan 11 '16 at 13:30