|
Posted by ojorus on 10/23/06 08:19
Thanks a lot for a very informative article. I found it very useful!
ojorus.
<mmckeon@gmail.com> skrev i melding
news:1161350331.086579.156720@h48g2000cwc.googlegroups.com...
> I've been using the mysqli extension for some time now. There are
> things I like about it and things that I don't like about it. But
> first, about perpared statements. All they do is take some of the load
> off of your database and move it to your web server. Prepared
> statements "compile" the query before sending it off to the database to
> run. Whether or not they will provide a performance increase on a
> single query I think is hard to say. That depends on the load of your
> DB and the load of your web server. If these boxes are one and the same
> then I don't think you would notice any difference.
>
> That being said, the idea of a prepared statement is much better than
> just using string concatentation to build your queries. When I say
> better I mean safer and increased data integrity. Parameter's can only
> be put in predefined places, like the "where ID = ?". In addition when
> you bind your parameters you specify the type of data that you are
> using in each respective field. So if you try to put a string in a int
> field, the bind will not work.
>
> Some disadvantages I've found is with prepared statements are error
> reporting. Errors in your queries don't appear all that often when you
> call prepare(). While the function will return false, it won't always
> give you any indication as to why it was false. Also, when you are
> binding your results you must know the number of columns that your db
> is going to return. So using "Select *" can be a bad idea because if
> you add a DB column later, the number of columns will change and
> bind_result() will fail because you haven't bound all the columns to
> something. While this can be annoying, the right way to query your db
> (especially if you are trying to optimize your db) is to only return
> the columns that you need. This forces you to be a little more honest
> when you are programming.
>
> As for using mysqli, I would say there are no disadvantages. I don't
> even remember what the regular mysql function set looks like anymore.
> On nice thing about mysqli is the ability to start, commit and rollback
> transactions without having to send a string to the database.
>
> Lastly, if you are looking for a different DB connecter you might want
> to look into PDO (PHP Data Objects) with offers a database abstraction
> layer, prepared statements, exceptions and many more. More info can be
> found here: http://us2.php.net/pdo
>
>
> ojorus wrote:
>> Hi!
>> Some questions regarding the mysqli-extension (php5)
>>
>> 1) Prepared statements: If I understand things right, prepared statements
>> will give better performance if you make several similar querys. (where
>> you
>> only change the parameters) But what if you do only ONE query; will it
>> then
>> be usefull to use prepared statements? Can it actuelly give better
>> performance NOT to use prepared statements in that case?
>>
>> 2) Are there any DISadvantages using the mysqli-extensions?
>>
>> 3) Are there any DISadvantages using prepared statements in general?
>>
>> Thanks for your replies.
>>
>> ojorus
>
[Back to original message]
|