Unknown column '' in 'where clause'

Heb gelezen dat 't heeft te maken met quote's maar ik zou bij god niet weten wat er hier fout moet zijn met de plaatsing van me quotes.

			$sql = 'SELECT `id`, `pass`, `count` FROM `'.$table['users'].'` WHERE name=`'.$username;
			mysql_query ($sql) or die(mysql_error());


Heb ook andere variatie geprobeerd:
			$sql = "SELECT id, pass, count FROM '".$table['users']."' WHERE name='".$username;
			mysql_query ($sql) or die(mysql_error());


dan krijg ik
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 ''users' WHERE name='Wouser' at line 1


mysql tabel
	CREATE TABLE users (  
		id 		int(4) NOT NULL auto_increment, 
		name 	varchar(20) BINARY NOT NULL default '',  
		pass 	varchar(32) BINARY NOT NULL default '',  
		count	int(4) NOT NULL default '0',
		last_ip varchar(15)  default NULL,
	UNIQUE KEY id (id)) TYPE=MyISAM;


Iemand die me hier even bij kan helpen?
Gebruik nooit backtics ` en gebruik nooit gereserveerde namen als een kolom- en/of tabelnaam. COUNT is bv. een functie en mag je dus niet als kolomnaam gebruiken.

De fout in de SELECT-query wordt veroorzaakt doordat jij in de knoop zit met de backtics en de quotes. Een query schrijf je alsvolgt:
<?
$sql = "
SELECT
id,
pass,
usercount
FROM
".$table['users']."
WHERE
name = '".$username."'
";
?>
Let op: Ik heb de kolom count een andere naam gegeven.

Ps. Waarom is de tabelnaam een variabele? Dat is zelden goed. Een query kan namelijk slechts op één (combinatie van) tabel (-len) worden uitgevoerd. De tabelnaam kan dus nooit variabel zijn. (uitzonderingen daargelaten)

Reageren