The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
||||
|
||||
The difference between mysql_fetch_array and $db->fetch_array?
I have a script which works perfectly with mysql_fetch_array($result), however, when switching it to $db->fetch_array($result) it does not work. It does not give an error, it simply does not return a result.
Is there something fundamentally different between vbulletin's database class fetch_array and mysql_fetch_array? (All other database class functions are working just fine... I have query_read within the same function and it works perfectly) |
#2
|
|||
|
|||
I read somewhere that $db->fetch_array() uses fewer resources than mysql_fetch_array() and mysql_fetch_assoc(), but I looked at the code in class_core.php recently, and I think I remember seeing that it was merely a difference of semantics.
Then again, I'm no expert. |
#3
|
|||
|
|||
It is simply a wrapper to the mysql_fetch_array function. If you are programming a vBulletin modification, you should use $db->fetch_array() to follow vBulletin's coding standards.
Can you post the two lines of code with mysql_fetch_array and $db->fetch_array? |
#4
|
||||
|
||||
I actually was able to find a solution by using $db->fetch_row. The problem was that I was using numeric keys for certain result sets (which was something I would have prefered not to change because it was quite useful.)
Oddly enough $db->fetch_array does not appear to be fully inter-changable with mysql_fetch_array in this regard. But as I said $db->fetch_row worked perfectly in those specific cases. |
#5
|
||||
|
||||
Abstraction. Since $db->fetch_array is wrapper, if you changed your database, mysql version, implementation details or wanted to add extra behaviour, $db->fetch_array provides a way to do so, since all the code would use an abstraction and not the direct mysql code.
Meaning... it would be a best practice to use $db->fetch_array if you are coding for Vbulletin Quote:
mysql_fetch_array($result, MYSQL_ASSOC) and not plain mysql_fetch_array |
#6
|
||||
|
||||
Ha ha... I was never considering NOT using the vbulletin database class. I was just trying to find the right parameter that I needed. Certainly it is alright to use vbulletin's databaseclass function $db->fetch_row. Correct?
|
#7
|
||||
|
||||
Correct Or rename the columns in your query. Both strategies are fine.
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|