Unknown column 'a' in 'field list'

Status
Niet open voor verdere reacties.

5blabla5

Gebruiker
Lid geworden
27 apr 2009
Berichten
485
Bij het uitvoeren van een mysql query via een PHP script krijg ik de output:
Code:
Unknown column 'a' in 'field list'

Dit zou betekenen dat de kolom 'a' niet bestaat, en dat klopt ook, maar ik heb 'a' niet eens genoemd bij de kolommen die ik wil definiëren. Blijkbaar pakt hij nu de values als kolomnamen? Bij de volgende sql code zijn er wat dingen vervangen door 'b', omdat het anders een onleesbare code zou worden. Dit heeft de foutmelding verder niet beïnvloedt.

[SQL]INSERT INTO hashes (`string`, `md2`, `md4`, `md5`, `sha1`, `sha224`, `sha256`, `sha384`, `sha512`, `ripemd128`, `ripemd160`, `ripemd256`, `ripemd320`, `whirlpool`, `tiger128,3`, `tiger160,3`, `tiger192,3`, `tiger128,4`, `tiger160,4`, `tiger192,4`, `snefru`, `snefru256`, `gost`, `adler32`, `crc32`, `crc32b`, `salsa10`, `salsa20`, `haval128,3`, `haval160,3`, `haval192,3`, `haval224,3`, `haval256,3`, `haval128,4`, `haval160,4`, `haval192,4`, `haval224,4`, `haval256,4`, `haval128,5`, `haval160,5`, `haval192,5`, `haval224,5`, `haval256,5`) VALUES (`a`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`, `b`)[/SQL]

De tabeldump:

[SQL]SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

CREATE TABLE `hashes` (
`hash_id` int(11) NOT NULL AUTO_INCREMENT,
`string` varchar(255) NOT NULL,
`md2_hash` varchar(255) NOT NULL,
`md4_hash` varchar(255) NOT NULL,
`md5_hash` varchar(255) NOT NULL,
`sha1_hash` varchar(255) NOT NULL,
`sha224_hash` varchar(255) NOT NULL,
`sha256_hash` varchar(255) NOT NULL,
`sha384_hash` varchar(255) NOT NULL,
`sha512_hash` varchar(255) NOT NULL,
`ripemd128_hash` varchar(255) NOT NULL,
`ripemd160_hash` varchar(255) NOT NULL,
`ripemd256_hash` varchar(255) NOT NULL,
`ripemd320_hash` varchar(255) NOT NULL,
`whirlpool_hash` varchar(255) NOT NULL,
`tiger128,3_hash` varchar(255) NOT NULL,
`tiger160,3_hash` varchar(255) NOT NULL,
`tiger192,3_hash` varchar(255) NOT NULL,
`tiger128,4_hash` varchar(255) NOT NULL,
`tiger160,4_hash` varchar(255) NOT NULL,
`tiger192,4_hash` varchar(255) NOT NULL,
`snefru_hash` varchar(255) NOT NULL,
`snefru256_hash` varchar(255) NOT NULL,
`gost_hash` varchar(255) NOT NULL,
`adler32_hash` varchar(255) NOT NULL,
`crc32_hash` varchar(255) NOT NULL,
`crc32b_hash` varchar(255) NOT NULL,
`salsa10_hash` varchar(255) NOT NULL,
`salsa20_hash` varchar(255) NOT NULL,
`haval128,3_hash` varchar(255) NOT NULL,
`haval160,3_hash` varchar(255) NOT NULL,
`haval192,3_hash` varchar(255) NOT NULL,
`haval224,3_hash` varchar(255) NOT NULL,
`haval256,3_hash` varchar(255) NOT NULL,
`haval128,4_hash` varchar(255) NOT NULL,
`haval160,4_hash` varchar(255) NOT NULL,
`haval192,4_hash` varchar(255) NOT NULL,
`haval224,4_hash` varchar(255) NOT NULL,
`haval256,4_hash` varchar(255) NOT NULL,
`haval128,5_hash` varchar(255) NOT NULL,
`haval160,5_hash` varchar(255) NOT NULL,
`haval192,5_hash` varchar(255) NOT NULL,
`haval224,5_hash` varchar(255) NOT NULL,
`haval256,5_hash` varchar(255) NOT NULL,
PRIMARY KEY (`hash_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;[/SQL]

Nu is mijn vraag: hoe kan het dat MySQL 'a' als een kolom ziet, en nog belangrijker: hoe kan ik het oplossen?
 
Je verwijst met je code wel degelijk naar een kolom a.
Je liggende aanhalingstekens moet je vervangen door enkelvoudige staande aanhalingstekens.
Dus een '

Tardis
 
In dat geval ontstaat er een andere foutmelding:

[SQL]INSERT INTO hashes ('string', 'md2', 'md4', 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'ripemd256', 'ripemd320', 'whirlpool', 'tiger128,3', 'tiger160,3', 'tiger192,3', 'tiger128,4', 'tiger160,4', 'tiger192,4', 'snefru', 'snefru256', 'gost', 'adler32', 'crc32', 'crc32b', 'salsa10', 'salsa20', 'haval128,3', 'haval160,3', 'haval192,3', 'haval224,3', 'haval256,3', 'haval128,4', 'haval160,4', 'haval192,4', 'haval224,4', 'haval256,4', 'haval128,5', 'haval160,5', 'haval192,5', 'haval224,5', 'haval256,5') VALUES ('a', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b')

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''string', 'md2', 'md4', 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512', '' at line 1[/SQL]

Op dit moment kan ik niet zien wat er fout is aan de sql code. Zou het is met de komma's te maken kunnen hebben?
 
De kolomnamen moet je wel omsluiten met backtics (`), de waardes (dus hetgeen je wil toevoegen) moet je omsluiten met single quotes ('). Je hebt nu de kolommen ook met single-quotes gedaan, waardoor MySQL het als een string ziet en niet meer als kolom(naam).
 
Het heeft gewerkt! Backtics voor de kolomnamen en single quotes voor de waarden gaven in dit geval het goede resultaat. Bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan