Erori trecere de la MySQL la MySQLi

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
royal27
Mesaje:79

Erori trecere de la MySQL la MySQLi

Vreau sa trec pe mysqli dar am o eroare pe care nu inteleg cum sa o rezolv,am cautat pe google dar nu imi da ceea ce caut
eroarea este

Cod: Selectaţi tot

Fatal error: Function name must be a string in /home/u854531772/public_html/dev/plugin/status/login_success.php on line 390
aici este codul

Cod: Selectaţi tot

global $legacy;
 $logedin = $legacy->query("SELECT (*) FROM ".$table."_ses WHERE uid='".$getuid_nick($uid)."'")->fetch_array();////<-AICI ESTE EROAREA DE LA LINIA 390
        if($logedin[0]>0)
        {
          //yip, so let's just update the expiration time
          $xtm = time() + (getsxtm()*60);
          $res = mysql_query("UPDATE ".$table."_ses SET expiretm='".$xtm."' WHERE uid='".getuid_nick($uid)."'");
          
          if($res) {
            $tolog=true;
            echo "<img src=\"$site_web/img/images/login2.gif\" alt=\"$numesite\"/><br/>";
            echo "".$lang['NAME']."<b> $uid</b><br/> ";
            echo "".$lang['PASSWORD']."<b> $pwd</b><br/> ";
          }else{
            echo "<img src=\"$site_web/img/images/point.gif\" alt=\"!\"/>".$lang['PLEASE_COME_BACK']."<br/>"; //no chance this could happen unless there's error in mysql connection
          }
} 
Imi mai apare si eroarea asta

Cod: Selectaţi tot

Warning: mysql_fetch_array() expects parameter 1 to be resource, object given in /home/u854531772/public_html/dev/inc/system.php on line 4932

Cod: Selectaţi tot

function isblockedip($var){
$text = $_SERVER['REMOTE_ADDR'];
global $legacy;
$rez = $legacy->query("SELECT * FROM lib3rtymrc_blockedip");
$i=0;
while($row=mysql_fetch_array($rez))/////////<-----AICI E EROAREA DE LA 4932
{
    $var[$i]=$row[1];
    $i++;
}

$result = count($var);

for ($i=0;$i<$result;$i++)
{
$ausg = stristr($text, $var[$i]);
if(strlen($ausg)>0)
{
return true;
}
}
return false;
}

function avatar($uid)
{
  $av = mysql_fetch_array(mysql_query("SELECT avatar FROM lib3rtymrc_users WHERE id='".$uid."'"));
  if ($av[0]=="")
  {
  $avatar="<img src=\"images/nopic.jpg\"/><br/>";
  }else{
  $avatar = imagine($av[0]);
  }
  return $avatar;
} 
Imi cer scuze ca sunt o bataie de cap dar sunt putin cam nou ....sau nou mai mult.

MarPlo Mesaje:4343
La prima eroare, trebuie sa separi inlantuirea de apelare a functiilor, si se aplica "num_rows", cam asa:

Cod: Selectaţi tot

$logedin = $legacy->query("SELECT * FROM ".$table."_ses WHERE uid='".$getuid_nick($uid)."'");
if($logedin->num_rows >0){
  $row = $logedin->fetch_array();
  // Restul ..
} 
Iar la a doua, si alte linii de cod similre, in MySQLi nu se foloseste mysql_fetch_array($rez) ci:

Cod: Selectaţi tot

$row = $rez->fetch_array() 
- $rez contine rezultatul interogarii facut cu query().

Daca vrei sa treci la mysqli, aproape tot codul trebuie rescris; tot ce are legatura cu functii care incep cu "mysql_".
- Pe site, la Cursuri sunt lectii cu MySQLi.

royal27 Mesaje:79
hai ca in mare parte imi merge,mersi mult,trebuie sa modific toate fisierele ca sa nu imi mai dea erori

royal27 Mesaje:79
Am trecut la mysqli cu succes,mersi frumos pentru tutoriale si ajutor