Php5 vs mysql
Sziasztok!
Van egy mysql kezelő objektumom ami tökéletesen működött PHP 4 alatt, de az 5-ös verziónál nem minden lekérdezésnél működik.
A DBNumrows-nál és a DBFetchrow metódus hívásánál valamikor nem létezik a lekérdezés eredménye (supplied argument is not a valid MySQL result )
Mi okozhatja ezt a problémát már próbáltam a mysqli-t is hátha csak azzal működik a php5, de azzal se működik (Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, boolean given in...)
Az biztos, hogy minden lekérdezés jó, mert kipróbáltam mysql kliensben.
■ Van egy mysql kezelő objektumom ami tökéletesen működött PHP 4 alatt, de az 5-ös verziónál nem minden lekérdezésnél működik.
A DBNumrows-nál és a DBFetchrow metódus hívásánál valamikor nem létezik a lekérdezés eredménye (supplied argument is not a valid MySQL result )
Mi okozhatja ezt a problémát már próbáltam a mysqli-t is hátha csak azzal működik a php5, de azzal se működik (Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, boolean given in...)
Az biztos, hogy minden lekérdezés jó, mert kipróbáltam mysql kliensben.
class DBObject{
var $dhost;
var $duser;
var $dpass;
var $dname;
var $DBCon;
var $query;
var $rowcount;
var $result;
var $row;
var $MYSQL_I=false;
function DBObject()
{
global $dbhost;
global $dbuser;
global $dbpassword;
global $dbname;
$this->dhost= $dbhost;
$this->duser= $dbuser;
$this->dpass= $dbpassword;
$this->dname= $dbname;
}
function GetRowCount()
{
return $this->rowcount;
}
function SetSQL($sql)
{
$this->query=$sql;
}
function DBConnect()
{
if(!$this->MYSQL_I)
{
$this->DBCon=mysql_connect($this->dhost, $this->duser, $this->dpass);
mysql_select_db($this->dname,$this->DBCon);
}
else
{
$this->DBCon=mysqli_connect($this->dhost, $this->duser, $this->dpass);
mysqli_select_db($this->DBCon,$this->dname);
}
}
function DBDisconnect()
{
if(!$this->MYSQL_I)
mysql_close($this->DBCon);
else
mysqli_close($this->DBCon);
}
function DBQuery()
{
if(!$this->MYSQL_I)
$this->result =mysql_query($this->query, $this->DBCon);
else
$this->result =mysqli_query($this->DBCon,$this->query);
}
function DBNumrows()
{
if(!$this->MYSQL_I)
$this->rowcount=mysql_num_rows($this->result);
else
$this->rowcount=mysqli_num_rows($this->result);
return $this->rowcount;
}
function DBFetchrow()
{
if(!$this->MYSQL_I)
$this->row = mysql_fetch_row($this->result);
else
$this->row = mysqli_fetch_row($this->result);
return $this->row;
}
function DBFetcharray()
{
$this->row = array();
if(!$this->MYSQL_I)
$this->row = mysql_fetch_array($this->result);
else
$this->row = mysqli_fetch_array($this->result);
return $this->row;
}
function DBFetchobject()
{
if(!$this->MYSQL_I)
$this->row = mysql_fetch_object($this->result);
else
$this->row = mysqli_fetch_object($this->result);
if($this->row) return $this->row;
else return false;
}
function DBFreeres()
{
if(!$this->MYSQL_I)
$row = mysql_free_result($this->result);
else
$row = mysqli_free_result($this->result);
}
}
Naplózás, hibakezelés
...
Irreleváns
...
pl. ... where valami='szöveg'
Létezik ilyen, hogy ezt nem képes kezelni az 5-ös php?
Nem létezik
Konkrét példát kellene beírnod ide nem csak valami dummy-t. És természetesen a lekérdezés után egy mysql_error() hívással az sql hibaüzenetét is meg kellene nézni (ha false-t ad vissza a query)
mysql error
Sikerült
Köszi mindenkinek.
Na végre
Én még nem találkoztam ezzel a hibával (igaz mysql-lel nem dolgozom már vagy 2 éve...) így csak a google-t tudom javasolni:
http://www.google.com/search?client=safari&rls=en-us&q=mysql+Illegal+mix+of+collations&ie=UTF-8&oe=UTF-8
Mondjuk ezzel kellett volna kezdened és akkor nem futunk felesleges köröket (persze a mysql verzióját még mindig nem árultad el)