Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL: Unknown column 'user' in 'where clause' (https://www.delphipraxis.net/33574-mysql-unknown-column-user-where-clause.html)

Pseudemys Nelsoni 9. Nov 2004 11:33


MySQL: Unknown column 'user' in 'where clause'
 
hi,

ich möchte einige datein eines benutzers bekommen, ich habe das so versucht;

Delphi-Quellcode:
function GetInfo(nick: string; var UserInfo: TUserInfo): boolean;
begin
  FillChar(UserInfo, sizeof(UserInfo), 0);
  result := false;
  if (
       (not Database_Exists(ini.ReadString('mysql', 'db_database', ''))) or
       (not Table_Exists(ini.ReadString('mysql', 'db_database', ''), ini.ReadString('mysql', 'db_table_users', ''))) or
       (not User_Exists(nick))
     ) then exit;
  q.SQL.Text := 'USE ' + ini.ReadString('mysql', 'db_database', '') + ';';
  q.ExecSQL;
  q.SQL.Text := 'SELECT * ' +
                'FROM `' + ini.ReadString('mysql', 'db_table_users', '') + '` ' +
                'WHERE `nick` = ' + nick + ';';
  q.Open;
wenn ich zum beispiel "nelson" übergebe, bekomme ich den fehler: "Unknown column 'nelson' in 'where clause'"

ich weiss aber das es mindestens ein feld in der DB gibt wo der "users" = "nelson" ist... weiss jemand wo hier der fehler liegt?

Airblader 9. Nov 2004 12:16

Re: MySQL: Unknown column 'user' in 'where clause'
 
naja..er sagt nicht,es gibt kein ergebniss, sondern er sagt, die spalte 'nelson' würde nicht existieren.

d.h. für ihn sieht der string so aus:

Code:
WHERE `nelson` = nelson
In Delphi dürfte es damit eig. keine Probleme geben.

2 Tipps:

1. Änder den Parameter "nick" zu z.b. "nname" o.ä.
2. mach WHERE ... = "nname"

air

Pseudemys Nelsoni 9. Nov 2004 12:27

Re: MySQL: Unknown column 'user' in 'where clause'
 
Zitat:

Zitat von Airblader
d.h. für ihn sieht der string so aus:

Code:
WHERE `nelson` = nelson
In Delphi dürfte es damit eig. keine Probleme geben.



moin, ne die DB kriegt es so übergeben:

Zitat:

WHERE `nick` = nelson
denn "`nick`" ist in einem string und wird daher nicht als variable gesehen

shmia 9. Nov 2004 12:28

Re: MySQL: Unknown column 'user' in 'where clause'
 
Delphi-Quellcode:
  // falsch
  q.SQL.Text := 'SELECT * ' + 
                'FROM `' + ini.ReadString('mysql', 'db_table_users', '') + '` ' + 
                'WHERE `nick` = ' + nick + ';';

  // richtig
  q.SQL.Text := 'SELECT * ' + 
                'FROM ' + ini.ReadString('mysql', 'db_table_users', '') + ' ' + 
                'WHERE nick=' + QuotedStr(nick);
  // noch besser wäre die Benutzung von Parametern
  q.SQL.Text := 'SELECT * ' + 
                'FROM ' + ini.ReadString('mysql', 'db_table_users', '') + ' ' + 
                'WHERE nick=:nick';
  q.paramValues['nick'] := nick;
  q.Open;

Pseudemys Nelsoni 9. Nov 2004 12:37

Re: MySQL: Unknown column 'user' in 'where clause'
 
danke shmia, ich testes mal :)

Pseudemys Nelsoni 9. Nov 2004 12:39

Re: MySQL: Unknown column 'user' in 'where clause'
 
danke es funktioniert 8)

wenn du zeit/lust hättest, könntest du mir noch erklären was es mit parametern auf sich hat?

gruss

Airblader 9. Nov 2004 19:09

Re: MySQL: Unknown column 'user' in 'where clause'
 
Zitat:

denn "`nick`" ist in einem string und wird daher nicht als variable gesehen
Hab ich nich gesagt, damit dürfte es ja eig. keine Probleme geben? :wink:

Achja:

SELECT * FROM
ist veraltete schreibweise.
besser ist
SELECT spalte1,spalte2,... FROM

kann man auch auf php-faq nachlesen

air


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz