|
Posted by Aaron Gray on 01/02/08 02:06
"Rik Wasmus" <luiheidsgoeroe@hotmail.com> wrote in message
news:op.t3947s0i5bnjuv@metallium.lan...
On Wed, 02 Jan 2008 02:56:31 +0100, Aaron Gray <ang.usenet@gmail.com>
wrote:
> "Rik Wasmus" <luiheidsgoeroe@hotmail.com> wrote in message
> news:op.t392n4xa5bnjuv@metallium.lan...
> On Wed, 02 Jan 2008 01:50:20 +0100, Aaron Gray <ang.usenet@gmail.com>
> wrote:
>
>> I have a MySQL table of pages each with a 'title' and 'page' fields.
>>
>> How do I do either an UPDATE if the pages 'title' exists or an INSERT if
>> it
>> does not ?
>>
>> The code I have written does not seem to do the job correctly.
>>
>> $result = mysql_query( "SELECT page FROM pages WHERE title = '" .
>> $title
>> . "';");
>>
>> $row = mysql_fetch_array( $result, MYSQL_ASSOC);
>>
>> if ( isset( $row["title"]) && $row[title] == $title)
>> {
>> $result = mysql_query( "UPDATE pages SET page = '". $page . "'
>> WHERE
>> title = '" .$title . "';");
>> if ($result)
>> mysql_query( "COMMIT;");
>> }
>> else
>> {
>> $result = mysql_query( "INSERT INTO pages SET title ='" . $title
>> .
>> "', page = '" . $page . "';");
>> if ($result)
>> mysql_query( "COMMIT;");
>> };
>>
>> This code is buggy and doing an insert rather than an update. How would
>> you
>> approach this task ?
>
> It could be done with one easy query, look into ON DUPLICATE KEY
> UPDATE
> syntax, ask in comp.databases.mysql
>
> I need to keep the logic in PHP rather than using SQL.
And why is that? Could you tell us what you expect to benefit from that?
This kind of thing should IMHO be handled by the database, maintaining
integrity of the data it holds is something a database is good at.
I am just not that familuar with SQL to take such an approach at this stage.
Aaron
[Back to original message]
|