Re: strange beahaviour with a mysql query in php

From: Date: Tue, 16 Jul 2002 16:00:47 +0000
Subject: Re: strange beahaviour with a mysql query in php
Groups: php.general 
Request: Send a blank email to php-general+get-107913@lists.php.net to get a copy of this message
If you only want to update the row if it exists, then you need to use a WHERE clause to make sure it does exist. "Blah blah blah WHERE row_id='$id' LIMIT 1" might work. I'm lazy and didn't want to retype what you had. :o) Martin Clifford Homepage: http://www.completesource.net Developer's Forums: http://www.completesource.net/forums/ >>> "David D" <dd@asi.fr> 04/16/02 11:57AM >>> Hello, I ve got mysql 4.0.1 I don't understand what happen. I use to make replace other than insert in order to avoid error in php scripts. I have a table with on primary key : CREATE TABLE nlconfig ( id tinyint(4) NOT NULL auto_increment, nomnews varchar(255) NOT NULL default '', hebergeur varchar(255) NOT NULL default '', fromc varchar(255) NOT NULL default 'contact@test.fr', fromonline varchar(255) NOT NULL default 'contact', limitconf tinyint(2) NOT NULL default '7', host varchar(255) NOT NULL default 'localhost', user varchar(255) NOT NULL default 'root', passwd varchar(255) NOT NULL default '', db varchar(255) NOT NULL default 'newsfr', tablenews varchar(255) NOT NULL default 'news', tabletemp varchar(255) NOT NULL default 'temp', tablelog varchar(255) NOT NULL default 'log', tableconfig varchar(255) NOT NULL default 'nlconfig', admin_pass varchar(255) NOT NULL default 'pikatchu', limitlog tinyint(2) NOT NULL default '10', url varchar(255) NOT NULL default '', pathtopmn varchar(255) NOT NULL default 'http://www.test.fr/fr/', langfile varchar(255) NOT NULL default 'lang-french.php', welcome_subj varchar(255) NOT NULL default 'bienvenue', welcome_msg text NOT NULL, sub_msg text NOT NULL, pied tinytext NOT NULL, validation tinyint(1) NOT NULL default '1', description text, newstemplate varchar(100) default NULL, PRIMARY KEY (id) ) TYPE=MyISAM; When inserting with mysqlfront windows client : replace into nlconfig values (last_insert_id(),'abc', 'nexen', 'a@', 'a', '', 'localhost', 'root' , '', 'newsfr', 'news', 'temp', 'log', 'nlconfig', 'lucas', '', '', 'http://www.test.fr/fr/', 'lang-french.php', '','','','', '1','','' ); 1st on row affected 2nd 2rows. I get no error. But from a php 4.06 script I get : errno 1062: erromsg : Duplicata du champ '127' pour la clef 1 That means : duplicate value for key 1. I didnt have the same result from a php script ? That the same error i get with NULL in the id with the windows client ?! Could you explain me what happen ? I only want to insert a new row when values are different from what is on the table, and to replace the row that there is when there is the same id or when all the data in query is the same ! Is it for that, that replace is for ? Thanks. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php

« previous php.general (#107913) next »