Tracking Forums, Newsgroups, Maling Lists
Home Scripts Tutorials Tracker Forums
 
  HOME    TRACKER    PHP




Performance Of Fetching MySQL Result


Is there a real performance difference between mysql_fetch_array(), mysql_fetch_object(), and mysql_fetch_row()?




View Complete Forum Thread with Replies

See Related Forum Messages: Follow the Links Below to View Complete Thread
Fetching Array From MySQL Table
Some told me to better learn some basics of php and mysql, but i encountered a problem that i couldn't solve with all the tutorials out there. I tried the following code to fetch an array from a MySQL table named Gallery: PHP Code:

Performance MySQL 5.0.11
Using LIMIT on large tables slows Queries down to a crawl when using
like comparisons (I understand that there is a fix in the beta
release) but what I am wondering is whether you all think that there is
a problem in returning a record set of say 10,000 rows and using a
foreach loop to display just a few of them) ie doing the limiting
within the PHP realm?

Ps I am offline for a few days so if I dont reply to the thread it is
not out o rudeness ;-)

Performance When Using Php And Mysql
Can somebody tell my something about performances when using mysql and php!
Where i can find document about this performance?
How php and mysql behave in use of multiple connections?

PHP Vs Java Performance On MySQL
Does PHP work better than Java with MySQL? What are pros and cons of using
PHP vs Java? Which one is faster?
Can someone share the experience or point me to some good white papers or
benchmarks?

Performance If MySQL Is On Remote Server
How well does PHP/MySQL perform if MySQL is located on another server? The server my site uses now just can't handle the database traffic we get (esp. from vB), so I was thinking of possibly using a remote server for MySQL. Is there a noticeable difference (at all)? I'm sure it'll be better than the time 4 of us shot the load up to 20+ by hitting the forum at the same time.

Quick Question About Performance With MySQL & PHP
Just a quick question about performance with MySQL & PHP. If I had a table
in a MySQL database with about 100,000 records in it and I need to find the
last record is there a quick way to do this, other than going through the
whole database to find the last record? Would the amount of records in the
table cause major performance problems?

For example, if I had a html form that people used to log something and
needed to display a unique number each time the page was loaded, reason
being thas this unique number could be given to people as a reference
number.

The reason I'm asking is because I've used an Access database (an ODBC
connection) before and with a large amount of records in the table it can
take up to about 12 seconds for a page to load. Would using MySQL
dramatically speed this up anyway?

Large Tables & Performance In Mysql
I'm pretty new to mysql. I've got a table that's about 50 megs. I want each unique entry in a certain column in the table to result in a link on a page. is it okay to have it go through all 50 megs every time someone loads the page? that doesn't seem like it'd be very friendly for performance.

if I can't do that, how should it be done?

also, seperate question, if a table exists but doesn't have a primary key, is there any way to go back and add one (along with a key for each row)?

MySQL Prepare Statement Performance Bottom-neck
When doing mysql query (SELECT statements) in php, we often use prepare
statement to prevent SQL injection. However, I just noticed that the
prepare statements can SLOW the number of queries per second by a
factor of 2 times (max).

So are there any faster method that can prevent SQL injection, but has
a better performance?

Performance Issues With Frequently Closing/opening Mysql Connections?
I have been faced a couple of times with the situation that I wanted to
write a script and was worried about a too frequent opening and closing
mysql connections.

To give some examples:

1)I am trying to develop a photoalbum (also posted a topic called "array /
mysql question"). Of course I can use some wonderful open source albums but
at the same time I want to get more familiar with all the ins and outs so my
idea is a list of filenames, where the database connection should be
opened, a statement like"select filenames from photos" , and, every filename
maybe with a thumbnail is a link to a second page and the whole is followed
by closing the connection. The second page could be something like opening
the database connection, a statement like "select description ( and other
fields) from photos where filename = $filename" , and closing the database
again. Let's say the visitor looks at the picture and its description,
clicks on a link to the first page with the thumbnails and agin the
connection is opened and closed to execute the first select statement, the
visitor chooses another picture etc. etc....

2)On the left column there is a menu item
"activiteiten". when there are special activities like a music performancein
the near future they are shown below that menu item. A select statement is
done where the first announcement date, and the last announcement date are
checked and the records where the current date is between those values are
selected (and shown in the menu bar of course). Again the connection is
opened and closed again immediately after the select statement. However,
this query is stored in "header.php" so on every page that is visited, the
connection is opened and closed. It would also be nice to make a link on the
"one-photo-page" to the previous and the next photo, which leads again to
the open-select-close "ritual".

I am not really a php guru (but not a newbie either) and unfortunately I
could not find many info on google about the performance issues that can be
involved when I decide to write such scripts. There were some vague
indications that it is better to open and close a connection frequently than
leave it open too long in order to execute more queries but I could not
really find good documentation about it.

I also thought to store the results of the query into a session variable but
I am not sure about the performance issues of sessions either.

Getting Result From Mysql
I am using this code to get some data from a mySQL database. Which seems pefectly valid to me. Here it is: Code:

High Performance And High Avalaibility Platform On Linux/Php/Apache/mySql
i'm setting up a website with a forecast traffic of 70.000 sessions and
1.000.000 pageviews a day.
I'm in trouble about the short budget I have (about 10K $) and the big
traffic and so the best architecture I can set up.
Any Idea about I can do?


MySQL Result Resource
I want to build a function that, depending on the input, will either return the results from a MySQL query or do something else and return one of several messages.

My problem is checking the return value to see which is returned. Is there a php function that checks a variable to see if it is a valid MySQL result resource? I looked through the manual and couldn't find anything.

MySql Result In Textarea
I have a script to display mysql query results in a table. I'd like to
display the results in a scrollable textarea. Is there a way to do
this?

Returning 1 Result From MySQL
I know the usual way of receiving results from MySQL, useing a while loop e.g.

$sql = "SELECT * FROM users WHERE email='joe@hotmail.com'";
$result = mysql_query($sql,$connection);
while ($row = mysql_fetch_array($result)){
echo $row["firstname"];
echo $row["lastname"];
echo $row["email"];}

BUT, if I know they only 1 result is going to be returned, is there a way to do this without using a while loop? So if I only wanted to get only the firstname of the person with email joe@hotmail.com. can I do this without a while loop or do I have to use one?

Total Result Php Mysql
PHP Mysql
limit the result to 5
I can display the 5 results using a do & while which it ok.

I want to list the total or all the results without using a do or while

this is so I can combine the results and remove duplicate words from the
total results

I.E.
Do & While
row result
1 this is the top
2 this is the bottom
3 this is the middle
4 this is the end
5 this is the finish

This is what I want to do:
result
this is the top this is the bottom this is the middle this is the end this
is the finish

modified result::
this is the top bottom middle end finish

Invalid MySQL Result
I keep getting the following two errors:

Warning: Supplied argument is not a valid MySQL result resource in /home/xxx/public_html/articlepro/newarticle.php on line 75

Warning: Supplied argument is not a valid MySQL result resource in /home/xxx/public_html/articlepro/newarticle.php on line 84

Here's the code which I think is causing the problem. PHP Code:

Size Of Mysql Result Set
How do I find the size of a mysql result set using php.

MySQL (DB) Result Sorting
I'm doing is taking results (fetching rows) from my mySQL database. But what I want to do is sort the results according to last name. So basically the table structure looks something like this:

id (primary key)
fullname

A example rows could be:
1
John Smith

2
Mary Jane

Now what I want to do is sort the results in PHP based on last name. I'm using the Pear DB for connecting to my mySQL database. Based on the example rows I gave, Mary Jane would go first, and then John Smith. How would I go about doing this? I was beginning to split the result based on spaces, and the last word to explode, but how would I truly do this?

Modifying MySQL Result - But Not The DB
How can I modify a MySQL data set returned by mysql_query? I am
basically doing a while loop over the rows, changing one field, and
then doing a mysql_data_seek back to the beginning of the set before
returning it. However, later calls to mysql_fetch_assoc still return
the orginal data, meaning that (I assume) I am changing a copy of the
data rather than the result set itself. Taking the reference (i.e.
$record =& mysql_fetch_assoc($result);) did not help.

I have read a large quantity of the posts in the php.net site,
googled, and read my PHP books - but have come up short on this one.

Yes, I know it's better to simply modify the DB. However, I'm working
with an existing code base which is very complicated, and want to
cherry pick one very well tested feature by making a change in the
result set only under special circumstances.

Substr() With A MySQL Result?
I am trying to limit the amount of text exhoed from a MySQL database column. From reading around it appears the substr() should be able to do this Code:

Mysql Result Into Array?
I have a shopping cart script sending info to a processor. I need to send the qty's and item name's in some sort of string via a single variable to the process form.
i.e. (3) Hipster Turnips, (6) Butter Milk Baby Brains, (2) Super Freaks Code:

Result From Mysql Into Foreach?
when using mysql_fetch_array($result)

I usually toss that into a while loop like so

while($row = mysql_fetch_array($result)){
...
}
however I was wondering if there was a way to put it in a foreach statement like so

foreach(mysql_fetch_array($result) as $row){
...
}
Is that legit? Will this work?

Linking To A MySQL Result
I had it the other day but now altered the code for my real database and it stopped working.

Here is the first page which lists the 10 most recent news stories:

<?php
require ('get_connected.php');
$sql = mysql_query ("SELECT title, story_id FROM news ORDER BY story_id DESC LIMIT 0, 10");
while ($row = mysql_fetch_assoc($sql)){
echo "<a href='view.php?id={$row['story_id']}'>" . ucwords(strtolower($row['title'])) . "</a><br>";
}
?>

And here is the page that should be displaying the news story based on story_id selected by the user.....

Using MYSQL Result To Send Mail
I have wrote a program to load a number of email address from the MYSQL database. And I have use
"$mail = mysql_query("select email from user;",$link_ID);

Now, I want to use mail() to send email to those e-mail account I got. What should I do for this?

Date Formatting From Mysql Result
always in the past I have done my date formatting from the query like so:

DATE_FORMAT(dateField, '%W, %b %e, %Y') AS realDate

I have tried formatting the straight date result with PHP like so:

having fetched results with mysql_fetch_array,

$newDate=$result["dateField"];
$formattedDate=date($newDate, 'm/d/y');

This doesn't work and simply returns the unformatted date as it is stored in the database.

Invalid MySql Result Resource
I have written a php script to search a MYSQL database and with the line:

$result = mysql_query ("SELECT * FROM table1
WHERE first_name LIKE '$first_name%'
AND last_name LIKE '$last_name%' " );
The next line,
if ($row = mysql_fetch_array($result)) { , gives me the error message

"supplied argument is not a valid MySql result resource"

Display Of Mysql Table Result...
I have a mysql table of articles with fields:

- recordID
- department
- articleTitle
- articleText

Using PHP, I'm attempting to get the results of the table to display as follows:

Department 1
- articleTitle 1
- articleTitle 2
- etc....

Department 2
- articleTitle 1
- articleTitle 2
- etc..

I figure I should use a while loop but can't figure out how to exit/reset the loop when a new 'department' is encountered in the $result.

Replacing Array With Mysql Result
I wanted to repalce the following line of code $data = array(40,21,17,14,23); with

for($i=0;$i<$numrows;$i++)
{
//print(mysql_result($result,$i,2));print("<br>");
array_push($data,mysql_result($result,$i,2));}

where mysql_result($result,$i,2) is the value and when i print it displays the values. But $data array is the Y axis value for drawing a chart. Here I wanted to replace the hard coded value with values from mysql but the second code does not function. Does anybody have idea how can I replace the $data array or what may be the problem with my coding The first one works but the second one does not work but in both cases it does not display any error.

Same Mysql Query Doesn't Always Return A Result
We have no access to a mysql NG on my provider's server, so we ask here:

We have a long query (long in text) with a UNION between 2 select.

We have been informed that some times the query doesn't return any result.
We have tried on our server and we always get a result. BUT, trying on the
hosting server, many times the query doesn't return any result and doesn't
get any error.

Any idea ? does Union have any problem ? how to check if the query failed ?
My hoster said that sometimes the table can be locked (if the server is
overloaded) and then mysql doesn't return any result, but this seems to me
an aberration.

the query takes about 0.0050 sec to execute when it doesn't return any
result, and 0.030 when I get results

Mysql Search Close Result
I've to find in a table the "closer" result given some text.

Here is a little example:

given the text "Batman socks" I've to find the best matching result in
choices like:
-"mickey socks"
-"robin socks"
-"batman black socks" ->this should be found
-"batman wallet"
-"batman"

or given the text "leather shoes" I've to find the best matching result in
choices like:
-"socks"
-"shoes" ->this should be found
-"pants"
-"shirts"
-"leather wallet"

Mysql Problem Understanding Result And Id?
I can't understand why the output from this is not &#397;'?

$query = "SELECT * FROM contacts";
$result = mysql_query($query);
echo mysql_result ($result, 7, "id");

I also tried adding "ORDER by id" but I still can't get it to echo 7.

MySQL Result Printing In For-loop
I have a script that count and print every week in a selected year. Now i want to connect this to the returned result from a MySQL query. Code to explain what I am trying to accomplish: Code:

How Do I Return Result Of Mysql Row Deletion
The data entered by a user on form 1 on page1.php is posted to
delete.php to remove that row from a table. After the SQL operation
the user is returned to page1.php.

How can I determine the success or failure of the SQL operation so I
can display an appropriate response message to the user?

Different Result For MySQL And PHP String Comparison
I have issued an SQL statement "SELECT email FROM mailing_list ORDER BY email ASC";
By right the order of the email should be sorted from smallest to largest. However I got different results when I used record that was ranked higher to compare against record that was ranked lower. I got opposite results. Code:

Mail A Set Of Addresses From A MYSQL Result
I'm populating a field in MYSQL that collects email addresses for a certain topic and saves them like this:

mail1@mail.com|emailaddress2@mail.com|email3@email.com

- Basically what I'd like to do is explode the data, and set up a mailer from PHP that informs each of the addresses individually that there has been an update to the topic.

I *don't* want each of the mail addresses to be visible to all the recipients on the list, so simply inserting the data into the TO: field won't do, because then all the addresses are visible, causing security concerns. Code:

Allow The User To Sort A Mysql Result
So what i got going on is a database that has, things about a video game, including the image location. what i want to do is have a nav bar up top, so the user can select a differnt way of sorting the mysql result, from like ASC to DESC, or sort by genre.

MySQL Result Can't Be Returned From Class Method.. ?
I've been messing around with objects and classes lately and can't figure out why this wont work.

I have index.php which uses the pbMySQL class (pbMySQL.class.php) and methods:
Code: include("lib/pbMySQL.class.php");

$db = new pbMySQL;
$db->pbMySQL_open("localhost","user","pass");
$db->pbMySQL_useDB("database");

// $q=$db->pbMySQL_query("SELECT * FROM pbn_news ORDER BY id DESC");
$q=mysql_query("SELECT * FROM pbn_news ORDER BY id DESC");

if(isset($q)) {
while($row=mysql_fetch_array($q)) {
print $row['name']."<br>
";
}
} else {
print "query returned FALSE";
}

$db->pbMySQL_close();

My problem is that when I use the first query method (which is commented; uses the pbMySQL_query() method) I do not get the mysql result returned, but if I use the same query without the method, I get the result. Here is the method from my class:
Code: function pbMySQL_query($query) {
if(!isset($this->conn) || !isset($query)) {
print "Error : argument(s) missing.<br>
";
} else {
$this->query = mysql_query($query,$this->conn) or die("Error : query failed.<br>
mysql said: <i>".mysql_error()."</i><br>
");
if(isset($this->query)) { return $this->query; } else { return FALSE; }
}
}

The method returns FALSE and I don't understand why. Is it something in particular I have to do different when using a class?

How Can I Populate A Listbox With The Result Of Mysql Query?
I would like to populate a listbox with the result of a mySQL Query.

Error Message - 0 Is Not A MySQL Result Index
Could anyone explain what this might mean?

Warning: 0 is not a MySQL result index

I have a simple form set up where a user types in a keyword and then a page is displayed based on the keyword. See below:

HTML page:
<html>
<head>
<title></title>
</head>
<body>
<form action="submitform.php3" method="GET">
<p><strong><font face="verdana, arial, ms sans serif" size="1">id#</font>:</strong> <input
type="text" name="keyword" size="15" maxlength="25"> <input type="submit" value="Go!"> </p>
</form>
</body>
</html>

submitform.php3 page:
<?php
mysql_connect ("localhost", "username", "password");
mysql_select_db (dbname);
$result=mysql_query("SELECT $url FROM table
WHERE keyword LIKE '%$keyword%'");
list($url)=mysql_fetch_row($result);
?>

The concept is really simple. A user types in an keyword and that page is displayed. There is a database set up with a table that has two columns. One is "keyword" and the other is "url" For example row 1 the keyword is abc, and the url is http://www.abc.com.

How To Get Mysql Query Result Into Temp. Txt File
I did a lite search in the archive but didn't find anything specific to my problem. Here is what I am trying to do:

I've got a table with about 25k entries of company addresses. I need to be able to pull specific data out of the table and put it in a temporary text file and then display the result in the browser for the user to save locally.

The query part and the format of the data is all simple enough but I am having trouble figuring out how to get the data from the query into a temporary text file and then displaying that file. here is what I whipped up but it obviously doesn't work: Code:
<?
$tmpfname = tempnam("/path/to/file/", "FOO");
$list = mysql_query("select * from FH_LIST where State='AK'");
while ($list_results = mysql_fetch_array($list)) {
$data = blah blah blah;
fwrite($tmpfname, ".$data
");
}

fopen($tmpfname, "r");
fpassthru($tmpfname);
?>

I get an error message saying:
Warning: Supplied argument is not a valid File-Handle resource (referring to $data).

Setting A Maximum Limit On A Php/mysql Result?
I am using PHP and MySQL to do this script. I want to have a table that contains only numbers for data and then add them all up as a result to display and that I have accomplished with no problem and then I want to display a percentage of that number to the public however that also I have accomplished with no problem using round()...

The problem is I am trying to set a maximum number that it displays.

I want it to display 1-500 no matter what the number is or the decimal it may have is provided it doesnt exceed 500 but once it does I want it to display 500 as the limit so even if it is say 674 I want it to only display 500. How would I go about doing this?

The sql I am using for the adding is SELECT SUM which works just fine and I am using round( $total_number *.15, 2) to display the percentage number of 15%.

PHP4/MySQL Formatting Result Set Output
I am currently coding a Photo Gallery project in PHP 4 and using MySQL to store information about the uploaded photos. My problem is that I am trying to get the images to be displayed in multiple columns accross the page, say 4-5 columns of small thumbnail images instead of all in one column as I have at present.

Warning: MySQL: Unable To Save Result Set In
I'm running PHP/MySQL/Apache on my home system on Windows for testing purposes. As a run a specific query, I get this error:

Warning: MySQL: Unable to save result set in C:apachehtdocsfinal.php on line 129

Warning: Supplied argument is not a valid MySQL result resource in C:apachehtdocsfinal.php on line 132

I know the second result means the specified query cannot be found, and I'm guessing for some reason MySQL cannot save the query. Here is my code. PHP Code:

If Result Of Mysql Query Is Only One Row/column, Why Use An Array?
If I'm doing a very specific select statement, which I know will only ever return one value, can I get that resulting bit of data without storing it in an array or object?
If not, is mysql_fetch_array() the fastest method for getting this one value?

Mysql+php Newbie: 2 Tables As 1 Result To Count... How To?
I need to check for username in 2 tables (user_basic and user_temp)
before I can alow incoming user to register new username, well, here is
what I had before I'w created temporary table:

$uname_check = mysql_query("SELECT uname FROM user_basic Where
(uname='$uname')");
if (mysql_num_rows($uname_check) > 0) { ...

but now, that mysql_num_rows isn't "working"...
now I have this lines:

$uname_check = mysql_query("SELECT uname.user_basic,uname.user_temp FROM
user_basic,user_temp Where (uname='$uname')");
if (mysql_num_rows($uname_check) > 0) { ...

and I'm geting this worning and my script fails in checking:
"mysql_num_rows(): supplied argument is not a valid MySQL result
resource in..."

Warning: MySQL: Unable To Save Result Set
I'm getting this error:

Warning: MySQL: Unable to save result set in /www/hosts/wwwroot/mainPage.php on line 11

Here is what line 11 looks like:

$articles = mysql_query("select entryID from articles where siteID like 'senior'");

MySQL Result To Real Array In Function
I'd like to create a function which input is the result of a mySQL
query.
The output should be exactly the same, only not a mySQL result array,
but a 'real' array.
So it should also get the fieldnames returned by mySQL and use those as
keys.

I can't get things to work properly: it should return a
multidimensional array,
like

$result_array[1] = array(
[field1] => field1 value,
[field2] => field2 value,
etc.
)

somehow my result is (with code below)

$result_array[1] = array(
[0] => field1 value,
[field1] => field1 value,
[1] => field2 value,
[field2] => field2 value,
etc.
)

+++++ code ++++++

$get_res= mysql_query(QUERY);

if( $res = mysql_fetch_array( $get_res ) )
{

do{

$result[] = $res;

}while( $res = mysql_fetch_array( $get_res ) );

};

foreach( $result as $key => $value ){

print_r($value);

};

Assign MySQL Function Result To PHP Variable
I know to use: mysql_fetch_row($result) to convert a row from a SQL query result set into an array for use with PHP. but in the case of SQL queries that return one value, such as calls to MySQL functions, is there another PHP mysql api function I should use.

For example, right now I use a "workaround" technique from PHPBuilder:
$result=mysql_query("SELECT COUNT(*) FROM tablename");
list($numrows)=mysql_fetch_row($result);

Rather than using this "workaround" code is there a way to simply assign the result of the MySQL function query to a variable.

$result=mysql_query("SELECT COUNT(*) FROM tablename");
$numrows=mysteryfunction($result);


Copyright © 2005-08 www.BigResource.com, All rights reserved