Another thing to check
Are your table(s) corrupted?
>From the MYSQL Manual
Typial typical symptoms for a corrupt table is:
You get the error Incorrect key file for table: '...'. Try to repair it
while selecting data from the table.
Queries doesn't find rows in the table or returns incomplete data.
Do a
repair table (tablename) or
isamchk {table name} ... or isamchk *.ISM
For MySQL 3.23.x use myisamchk instead of isamchk
If isamchk reports any problems or recommends fixing that table, repeat
isamchk with a "-r" option on that table to repair. During the repair,
isamchk will do its best to repair any corruption without losing any data,
but there are no guarantees.
I would also recommend dumping the data out, and putting into another table
to see if it occurs with a fresh table.
Lawrence.
-----Original Message-----
From: David Robley [mailto:[EMAIL PROTECTED]]
Sent: September 25, 2001 9:00 AM
To: Michael George; [EMAIL PROTECTED]
Subject: Re: [PHP] Mysql check
On Tue, 25 Sep 2001 02:38, Michael George wrote:
> I think I've discovered a problem with MySQL, but I wanted to check
> here to see if perhaps there's something I'm doing wrong.
>
> I have the following table:
> ----------------------------
> mysql> show columns from IncomingInvoice;
> +------------------+------------------+------+-----+---------+---------
>-------+
>
> | Field | Type | Null | Key | Default | Extra
> | |
>
> +------------------+------------------+------+-----+---------+---------
>-------+
>
> | id | int(10) unsigned | | PRI | NULL |
> | auto_increment | supplier | int(10) unsigned | | | 0
> | | | sent | date | YES |
|
> | NULL | | invoiceNumber | int(10) unsigned | |
|
> | 0 | | paymentReference | char(20) | YES |
|
> | NULL | | shipping | float | YES |
|
> | NULL | | taxRate | float | YES |
|
> | NULL | |
>
> +------------------+------------------+------+-----+---------+---------
>-------+ 7 rows in set (0.00 sec)
> ----------------------------
>
> and the following data in that table:
> ----------------------------
> mysql> select * from IncomingInvoice;
> +----+----------+------------+-------------+----------------+--------+-
>--------+
>
> | id | supplier | sent |invoiceNumber|paymentReference|shipping|
> | taxRate |
>
> +----+----------+------------+-------------+----------------+--------+-
>--------+
>
> | 1 | 1 | 2001-09-11 | 156 | | 6.9 |
> | 6 | 5 | 1 | 2001-09-17 | 0 | |
> | 5 | 6 | 6 | 7 | 2001-09-19 | 0 |
> | | 0 | 0 | 9 | 1 | 2001-09-20 | 0 |
> | | 8 | 6 | 8 | 25 | 2001-09-20 |
> | 0 | | 0 | 0 | 11 | 1 | 2001-09-20 |
> | 0 | | 0 | 0 |
>
> +----+----------+------------+-------------+----------------+--------+-
>--------+ 6 rows in set (0.00 sec)
> ----------------------------
>
> But when I try to do a select on record 11, I get:
> ----------------------------
> mysql> select * from IncomingInvoice where id=11;
> Empty set (0.01 sec)
> ----------------------------
>
> and explain tell me:
> ----------------------------
> mysql> explain select * from IncomingInvoice where id=11;
> +-----------------------------------------------------+
>
> | Comment |
>
> +-----------------------------------------------------+
>
> | Impossible WHERE noticed after reading const tables |
>
> +-----------------------------------------------------+
> 1 row in set (0.00 sec)
> ----------------------------
>
> What are the "const tables" that are indicating that the WHERE is
> impossible?
>
> If I try to use a more flexible query:
> ----------------------------
> mysql> explain select * from IncomingInvoice where id>10;
> +---------------+-----+-------------+-------+-------+------+------+----
>--------+
>
> | table |type |possible_keys|key |key_len| ref | rows |
> | Extra |
>
> +---------------+-----+-------------+-------+-------+------+------+----
>--------+
>
> |IncomingInvoice|range|PRIMARY |PRIMARY| 4| NULL | 1 |
> | where used |
>
> +---------------+-----+-------------+-------+-------+------+------+----
>--------+ 1 row in set (0.00 sec)
>
> mysql> select * from IncomingInvoice where id>10;
> Empty set (0.00 sec)
> ----------------------------
>
> Could there be something I've done to put the table into an
> inconsistent state? I *am* doing PHP development, so it's possible...
>
> Here's something else I tried:
> ----------------------------
> mysql> select id, supplier, sent, invoiceNumber, shipping, taxRate
> -> from IncomingInvoice where id > 8;
> +----+----------+------------+---------------+----------+---------+
>
> | id | supplier | sent | invoiceNumber | shipping | taxRate |
>
> +----+----------+------------+---------------+----------+---------+
>
> | 9 | 1 | 2001-09-20 | 0 | 8 | 6 |
>
> +----+----------+------------+---------------+----------+---------+
> 1 row in set (0.00 sec)
>
> mysql> select id, supplier, sent, invoiceNumber, shipping, taxRate
> -> from IncomingInvoice where (id+0) > 8;
> +----+----------+------------+---------------+----------+---------+
>
> | id | supplier | sent | invoiceNumber | shipping | taxRate |
>
> +----+----------+------------+---------------+----------+---------+
>
> | 9 | 1 | 2001-09-20 | 0 | 8 | 6 |
> | 11 | 1 | 2001-09-20 | 0 | 0 | 0 |
>
> +----+----------+------------+---------------+----------+---------+
> 2 rows in set (0.00 sec)
>
> mysql> select id, supplier, sent, invoiceNumber, shipping, taxRate
> -> from IncomingInvoice where (id+0)=11;
> +----+----------+------------+---------------+----------+---------+
>
> | id | supplier | sent | invoiceNumber | shipping | taxRate |
>
> +----+----------+------------+---------------+----------+---------+
>
> | 11 | 1 | 2001-09-20 | 0 | 0 | 0 |
>
> +----+----------+------------+---------------+----------+---------+
> 1 row in set (0.00 sec)
> ----------------------------
>
> It therefore appears that MySQL/the table is shorting out and killing
> the query before it's really executed.
>
> I'm not on any mailing lists for MySQL, but I'll try checking their web
> site for an explanation, too.
>
> Thanks!
>
> -Michael
This is a wild guess (like Richard Lynch does ;->) but your primary key
is set to autoincrement, but with a default of NULL; this may be a bad
thing and possibly should be set to 0 (zero).
--
David Robley Techno-JoaT, Web Maintainer, Mail List Admin, etc
CENTRE FOR INJURY STUDIES Flinders University, SOUTH AUSTRALIA
Just what part of "NO" didn't you understand...?
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]