[ciapug] More MySQL issues
Tony Bibbs
tony at tonybibbs.com
Fri Jul 14 11:21:54 CDT 2006
Nah, I don't think anybody is faulting you for that.
My issue with SP's has always been the fact they tie you to the hip with
the DBMS you are using. So as long as your organization is fine with
using MySQL for a long time into the foreseeable future then do what you
are doing. Many organizations can make that decision and that's great.
Where I have the problem is when people turn right around and hook up
things like PDO, PEAR::DB, etc to run all those SP's. I mean, if you
are tied at the hip with the DBMS because of the heavy use of SP's, you
might as well go a step further and use the native PHP drivers (e.g.
mysqli) get eak out a bit better performance.
I've been doing this now for 9 years and I have had to migrate databases
from one DBMS to another and I will say there is nothing more painful
and time consuming when you run into things that just aren't portable.
With the advent of PDO, opcode caches, SQL caches, etc I don't see
performance issues as much and as a result I tend to use database
abstraction libraries and put the SQL in code ensuring to make things as
portable as possible. Do I use SP's? Sure, but then ones I have are
monsters that crunch a bunch of data that would otherwise take an
eternity via code.
One other caveat to all this is that I try to ensure SP's are doing just
the create, read, update, delete sort of stuff. As soon as you have an
ounce of business logic in an SP then I think it has been taken way too far.
Just my take on it...
--Tony
Carl Olsen wrote:
> I'm curious why people on this list question why you would want to use this
> or that technology when the question being asked is how that technology
> works, not whether someone should use it. If you want to learn how
> something works, is there some way of doing that without trying it?
>
> --
> Carl Olsen, MCSE
>
> Web Developer, CMS Implementation
>
> Marketing and Communications
> Drake University
> 2507 University Avenue
> 316 Old Main
> Des Moines, Iowa 50311-4505
> Phone: 515-271-2986
> Fax: 515-271-3798
> Carl.Olsen at drake.edu
> www.drake.edu
>
>
> -----Original Message-----
> From: ciapug-bounces at cialug.org [mailto:ciapug-bounces at cialug.org] On Behalf
> Of Dave J. Hala Jr.
> Sent: Friday, July 14, 2006 10:56 AM
> To: PHP List
> Subject: Re: [ciapug] More MySQL issues
>
> Why would you want to user a stored procedure to return a result set to
> a php script?
>
>
> On Fri, 2006-07-14 at 10:45, Carl Olsen wrote:
>> Apparently, MySQL Stored Procedures don't support the LIMIT function
>> very well. In order to get a Stored Procedure to return a set or rows
>> using the LIMIT function, you have to do some procedural gymnastics,
>> such as:
>>
>>
>>
>> DELIMITER $$;
>>
>>
>>
>> DROP PROCEDURE IF EXISTS `news`.`sp_News_ReturnApprovedArticles`$$
>>
>>
>>
>> CREATE PROCEDURE `sp_News_ReturnApprovedArticles`(IN sp_var1 INT, IN
>> sp_var2 CHAR(10), IN sp_var_skip INT, IN sp_var_count INT)
>>
>> BEGIN
>>
>> SET @String1 = concat(concat(concat("SELECT * FROM news_article WHERE
>> cid = ",sp_var1," AND sdatedisplay >= '",sp_var2,"' AND sdatedisplay <
>> DATE_ADD('",sp_var2,"',INTERVAL 1 MONTH) AND iapproved = 1 ORDER BY
>> iorder ASC, sdatedisplay DESC LIMIT "),sp_var_skip,","),sp_var_count);
>>
>> PREPARE Stmt FROM @String1;
>>
>> EXECUTE Stmt;
>>
>> SET @String1 = "";
>>
>> END$$
>>
>>
>>
>> DELIMITER ;$$
>>
>>
>>
>> When you run this as a query, it returns a set of records as you would
>> expect. However, when I call it from a PHP prepared statement, I get
>> extremely unusual results. I get the correct number of rows each
>> time, but the data is scrambled beyond recognition. I get some
>> characters that don't display correctly. The data is all numbers,
>> except for the characters that it doesn't recognize (it just displays
>> them as an empty square). I'm thinking it returning binary data or
>> something bizarre like that. I finally gave up on this and skipped
>> the stored procedure and ran the query inside a prepared statement.
>> Prepared Statements seems to work for anything I can come up with, but
>> Stored Procedures seem to have limited functionality.
>>
>>
>>
>> --
>> Carl Olsen, MCSE
>>
>> Web Developer, CMS Implementation
>>
>> Marketing and Communications
>> Drake University
>> 2507 University Avenue
>> 316 Old Main
>> Des Moines, Iowa 50311-4505
>> Phone: 515-271-2986
>> Fax: 515-271-3798
>> Carl.Olsen at drake.edu
>> www.drake.edu
>>
>>
>>
>>
>>
>> ______________________________________________________________________
>> _______________________________________________
>> ciapug mailing list
>> ciapug at cialug.org
>> http://cialug.org/mailman/listinfo/ciapug
More information about the ciapug
mailing list