Check out: http://dev.mysql.com/doc/refman/5.0/en/communication-errors.html
http://dev.mysql.com/doc/refman/5.0/en/gone-away.html (I've noticed this has come up a lot recently on the list. . .) -Sheeri On 1/24/06, Jonathan Mangin <[EMAIL PROTECTED]> wrote: > I got exactly that error message last night when doing a > numeric comparison on a varchar column. Oops. > Kind of misleading, though. > > > ----- Original Message ----- > From: "David Godsey" <[EMAIL PROTECTED]> > To: "George Law" <[EMAIL PROTECTED]> > Cc: <mysql@lists.mysql.com> > Sent: Tuesday, January 24, 2006 4:43 PM > Subject: RE: Lost connection to MySQL server during query > > > > Thanks for the reply. I'm not using persistend connections though. It > > appears that it looses the connection in the middle of the query or in > > other words, before the procedure returns. So that means I not getting > > the data I need. So for debug purposes, are you saying to do a "check > > status" from PHP or in the procedure? From the procedure it wouldn't do > > any good right? From PHP it would be after I didn't get the data, so I > > would have to reconnect and rerun the query. That won't really work for > > me either. > > > > David Godsey > > > David, > > > > > > Are you using persistent connections? Sounds like perhaps a persistent > > > connection is timing out. > > > > > > Maybe a quick work around would be to call a "check status" routine (ie > > > - do a show status), just to see if the connection is still there. If > > > this fails, just do a mysql_connect... Before continuing. > > > > > > -- > > > George > > > > > > > > > -----Original Message----- > > > From: David Godsey [mailto:[EMAIL PROTECTED] > > > Sent: Tuesday, January 24, 2006 4:09 PM > > > To: mysql@lists.mysql.com > > > Subject: Lost connection to MySQL server during query > > > > > > I am getting this error when connecting to mysql with PHP: > > > Lost connection to MySQL server during query > > > > > > This happens only when I use this procedure, but it doesn't necessarily > > > fail when this procedure is called. The error will happen frequently, > > > however it is not consistent. This is my first procedure I've written, > > > so I'm sure I've done something wrong here. I assume the error message > > > means I'm hitting some kind of timeout? > > > > > > Any ideas would be welcome. Thanks. > > > > > > create procedure getElement (IN n VARCHAR(255),IN ptime DOUBLE) > > > BEGIN > > > DECLARE mfid INT UNSIGNED; > > > DECLARE pid INT UNSIGNED; > > > DECLARE foffset INT UNSIGNED; > > > DECLARE flength INT UNSIGNED; > > > DECLARE vid INT UNSIGNED; > > > DECLARE rfid INT UNSIGNED; > > > DECLARE tpid INT UNSIGNED; > > > DECLARE fdata BLOB; > > > DECLARE fdata_tmp BLOB; > > > DECLARE fdata_bigint BIGINT UNSIGNED; > > > DECLARE fdata_signed INT; > > > DECLARE fdata_unsigned INT UNSIGNED; > > > DECLARE fdata_float DOUBLE; > > > DECLARE data_type VARCHAR(20); > > > DECLARE byte_order VARCHAR(20); > > > DECLARE conv_param VARCHAR(255); > > > > > > SELECT major_frame_desc_id, parent_id, frame_offset, > > > frame_length, version_id, top_level_parent_id > > > FROM MajorFrameDescription > > > WHERE name=n > > > INTO mfid,pid,foffset,flength,vid,tpid; > > > > > > SELECT attribute_value FROM MajorFrameAttributes > > > WHERE major_frame_desc_id=mfid AND > > > attribute_name="NormalizedType" > > > INTO data_type; > > > > > > SELECT attribute_value FROM MajorFrameAttributes > > > WHERE major_frame_desc_id=mfid AND > > > attribute_name="ConvParams" > > > INTO conv_param; > > > > > > SELECT attribute_value FROM MajorFrameAttributes > > > WHERE major_frame_desc_id=mfid AND > > > attribute_name="ByteOrder" > > > INTO byte_order; > > > > > > SELECT MAX(raw_major_frame_id) > > > FROM RawMajorFrames > > > WHERE major_frame_desc_id=tpid > > > INTO rfid; > > > > > > IF rfid >0 THEN > > > > > > SELECT payload_time, > > > SUBSTR(BINARY(frame_data), > > > FLOOR(foffset/8)+1, > > > CEIL((flength + (foffset %8 ))/8)) > > > FROM RawMajorFrames > > > WHERE raw_major_frame_id=rfid > > > INTO ptime,fdata; > > > > > > call toBigInt(fdata,fdata_bigint); > > > IF (foffset %8) >0 THEN > > > SET @mask_off=foffset%8; > > > call > > > mask_data(fdata,@mask_off,fdata_bigint); > > > END IF; > > > IF (8-((flength+(foffset%8)) %8)) > 0 THEN > > > SELECT (fdata_bigint >> > > > (8-((flength+(foffset%8)) %8))) > > > INTO > > > fdata_bigint; > > > END IF; > > > CASE data_type > > > WHEN "Float" > > > THEN > > > call > > > toFloat(fdata_bigint,fdata_float); > > > IF(!ISNULL(conv_param)) > > > THEN > > > call > > > polyConv(fdata_float,conv_param,fdata_float); > > > END IF; > > > SET > > > @fdata_converted=fdata_float; > > > > > > WHEN "Double" > > > THEN > > > call > > > toFloat(fdata_bigint,fdata_float); > > > IF(!ISNULL(conv_param)) > > > THEN > > > call > > > polyConv(fdata_float,conv_param,fdata_float); > > > END IF; > > > SET > > > @fdata_converted=fdata_float; > > > > > > WHEN "Signed" > > > THEN > > > call > > > toSigned(fdata_bigint,fdata_signed); > > > SET > > > @fdata_converted=fdata_signed; > > > WHEN "Unsigned" > > > THEN > > > SET > > > @fdata_converted=fdata_bigint; > > > ELSE > > > SET @fdata_converted=HEX(fdata); > > > END CASE; > > > call enumConv(fdata_bigint,mfid,@fdata_enum); > > > IF(!ISNULL(@fdata_enum)) THEN > > > SET @[EMAIL PROTECTED]; > > > END IF; > > > > > > SELECT > > > mfid AS major_frame_desc_id, > > > n AS name, > > > pid AS parent_id, > > > tpid AS top_level_parent_id, > > > rfid AS raw_major_frame_id, > > > foffset AS frame_offset, > > > flength AS frame_length, > > > vid AS version_id, > > > ptime AS payload_time, > > > HEX(fdata) AS raw_data, > > > @fdata_converted AS converted_data; > > > > > > ELSE > > > SELECT rfid; > > > END IF; > > > END > > > > > > > > > Some procedures it uses are: > > > CREATE PROCEDURE toBigInt (IN fdata BLOB,OUT fdata_int BIGINT UNSIGNED) > > > BEGIN > > > SET @string_data=CONCAT('0x',HEX(fdata)); > > > DROP TEMPORARY TABLE IF EXISTS make_conversion; > > > CREATE TEMPORARY TABLE make_conversion(toint BIGINT > > > UNSIGNED); > > > SET @q=CONCAT('INSERT INTO make_conversion set > > > toint=(',@string_data,'+0)'); > > > PREPARE st1 from @q; > > > EXECUTE st1; > > > DEALLOCATE PREPARE st1; > > > SELECT toint from make_conversion into fdata_int; > > > END > > > $$ > > > > > > CREATE PROCEDURE toUnsigned (IN fdata BIGINT UNSIGNED,OUT fdata_int INT > > > UNSIGNED) > > > BEGIN > > > SET @string_data=CONCAT('0x',HEX(fdata)); > > > DROP TEMPORARY TABLE IF EXISTS make_conversion; > > > CREATE TEMPORARY TABLE make_conversion(toint INT > > > UNSIGNED); > > > SET @q=CONCAT('INSERT INTO make_conversion set > > > toint=(',@string_data,'+0)'); > > > PREPARE st1 from @q; > > > EXECUTE st1; > > > DEALLOCATE PREPARE st1; > > > SELECT toint from make_conversion into fdata_int; > > > END > > > $$ > > > > > > CREATE PROCEDURE toSigned (IN fdata BIGINT UNSIGNED,OUT fdata_int INT) > > > BEGIN > > > SET @string_data=CONCAT('0x',HEX(fdata)); > > > DROP TEMPORARY TABLE IF EXISTS make_conversion; > > > CREATE TEMPORARY TABLE make_conversion(toint INT); > > > SET @q=CONCAT('INSERT INTO make_conversion set > > > toint=(',@string_data,'+0)'); > > > PREPARE st1 from @q; > > > EXECUTE st1; > > > DEALLOCATE PREPARE st1; > > > SELECT toint from make_conversion into fdata_int; > > > END > > > $$ > > > > > > > > > CREATE PROCEDURE toFloat (IN fdata BIGINT UNSIGNED,OUT fdata_float > > > DOUBLE) > > > BEGIN > > > SET @string_data=CONCAT('0x',HEX(fdata)); > > > DROP TEMPORARY TABLE IF EXISTS make_conversion; > > > CREATE TEMPORARY TABLE make_conversion(tofloat DOUBLE); > > > SET @q=CONCAT('INSERT INTO make_conversion set > > > tofloat=(',@string_data,'+0)'); > > > PREPARE st1 from @q; > > > EXECUTE st1; > > > DEALLOCATE PREPARE st1; > > > SELECT tofloat from make_conversion into fdata_float; > > > END > > > $$ > > > > > > CREATE PROCEDURE shift_right(IN fdata_bigint BIGINT UNSIGNED,IN shift > > > INT UNSIGNED,OUT fdata_bigint2 BIGINT UNSIGNED) > > > BEGIN > > > SELECT fdata_bigint >> shift INTO fdata_bigint2; > > > END > > > $$ > > > > > > CREATE PROCEDURE mask_data(IN fdata BLOB,IN mask_off INT UNSIGNED,OUT > > > fdata_bigint2 BIGINT UNSIGNED) > > > BEGIN > > > DECLARE top_byte TINYBLOB; > > > DECLARE top_int BIGINT UNSIGNED; > > > SELECT SUBSTR(BINARY(fdata),1,1) INTO top_byte; > > > call toBigInt(top_byte,top_int); > > > SELECT ((top_int << mask_off) & 0xFF) >> mask_off INTO > > > top_int; > > > SET > > > @string_data=CONCAT('0x',HEX(top_int),HEX(SUBSTR(BINARY(fdata),2))); > > > DROP TEMPORARY TABLE IF EXISTS make_conversion; > > > CREATE TEMPORARY TABLE make_conversion(toint INT); > > > SET @q=CONCAT('INSERT INTO make_conversion set > > > toint=(',@string_data,'+0)'); > > > PREPARE st1 from @q; > > > EXECUTE st1; > > > DEALLOCATE PREPARE st1; > > > SELECT toint FROM make_conversion INTO fdata_bigint2; > > > END > > > $$ > > > CREATE PROCEDURE polyConv(IN fdata DOUBLE,IN conv_param VARCHAR(255),OUT > > > fdata_converted DOUBLE) > > > BEGIN > > > DECLARE beginning VARCHAR(255); > > > DECLARE end_of VARCHAR(255); > > > DECLARE query VARCHAR(255); > > > SELECT SUBSTR(conv_param,1,POSITION('x' in > > > conv_param)-1) INTO beginning; > > > SELECT SUBSTR(conv_param,POSITION('x' in conv_param)+1) > > > INTO end_of; > > > SET @string_query=CONCAT("SELECT > > > ",beginning,fdata,end_of,"INTO > > > @fdata_converted"); > > > PREPARE st1 FROM @string_query; > > > EXECUTE st1; > > > DEALLOCATE PREPARE st1; > > > SELECT @fdata_converted INTO fdata_converted; > > > END > > > $$ > > > > > > CREATE PROCEDURE enumConv(IN fdata INT UNSIGNED,mfid INT UNSIGNED,OUT > > > fdata_converted > > > VARCHAR(100)) > > > BEGIN > > > SELECT name FROM EnumLiterals > > > WHERE major_frame_desc_id=mfid AND value=fdata > > > INTO fdata_converted; > > > END > > > > > > > > > Accomplishing the impossible means only that the boss will add it to > > > your regular duties. > > > > > > David Godsey > > > > > > > > > -- > > > MySQL General Mailing List > > > For list archives: http://lists.mysql.com/mysql > > > To unsubscribe: > > > http://lists.mysql.com/[EMAIL PROTECTED] > > > > > > > > > > > > -- > > > MySQL General Mailing List > > > For list archives: http://lists.mysql.com/mysql > > > To unsubscribe: > > > http://lists.mysql.com/[EMAIL PROTECTED] > > > > > > > > > > > > Accomplishing the impossible means only that the boss will add it to your > > regular duties. > > > > David Godsey > > > > > > -- > > MySQL General Mailing List > > For list archives: http://lists.mysql.com/mysql > > To unsubscribe: > http://lists.mysql.com/[EMAIL PROTECTED] > > > > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] > > -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]