Open-AudIT https://www.open-audit.org/phpBB3/ |
|
Optimizing... https://www.open-audit.org/phpBB3/viewtopic.php?f=10&t=1340 |
Page 1 of 1 |
Author: | lorenz [ Mon Aug 28, 2006 8:05 pm ] |
Post subject: | Optimizing... |
Dear support, i propose a change for the page admin_pc_add_2. When you insert/update something in the DB, to see if a record already exist you do a select and then an update (for example): [quote]SELECT MAX(shares_timestamp) FROM shares WHERE shares_uuid = '77FBB0BA-F5B2-D511-B0D5-001083FDFE8A' SELECT count(shares_uuid) AS count FROM shares WHERE shares_uuid = '77FBB0BA-F5B2-D511-B0D5-001083FDFE8A' AND shares_caption = 'IPC remoto' AND shares_name = 'IPC$' AND shares_path = '' AND (shares_timestamp = '20060827130004' OR shares_timestamp = '20060828115126') [color=red]Count: 1[/color] UPDATE shares SET shares_timestamp = '20060828115126' [color=red]WHERE shares_name = 'IPC$' AND shares_uuid = '77FBB0BA-F5B2-D511-B0D5-001083FDFE8A' AND shares_timestamp = '20060827130004'[/color] I think that , in some cases, it could generate errors, sometimes "count" is not 1 but more... (see other thread in the forum, services and software duplicated). If you remove the count statement and simply intorduce a mysql_num_rows, you will obtain the same effect, but then you can use an update using the record ID found by the previous select. Like this: [quote]SELECT (shares_uuid) AS count FROM shares WHERE shares_uuid = '77FBB0BA-F5B2-D511-B0D5-001083FDFE8A' AND shares_caption = 'IPC remoto' AND shares_name = 'IPC$' AND shares_path = '' AND (shares_timestamp = '20060827130004' OR shares_timestamp = '20060828115126') [color=red]mysql_num_rows : XXX[/color] UPDATE shares SET shares_timestamp = '20060828115126' [color=red]WHERE id_share='_id_found_before_'[/color] I think it's more correct, also under the coding's point of view. Another thing... Sometimes admin_pc_add_2, to discover if a record already exists, uses a select and then an update (case above), sometimes it uses an update, then it checks for the affected rows and then, if affected rows=0, it does an insert. Why you do not use always the same procedure, select and insert or update? Thanks, bye! |
Page 1 of 1 | All times are UTC + 10 hours |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |