PHP SQL Query

PEASANT KING

Commander
Registriert
Okt. 2008
Beiträge
2.412
Moin Leute,

kann mir mal Jemand erklären wieso ich bei diesem Query:
PHP:
//SQL Abfrage//
if (empty($_REQUEST["kdnr"]) && empty($_REQUEST["name"])) 
 {
 echo "Bitte geben Sie ein Suchkriterium ein!";
 die;
 }
 if ((empty($_REQUEST["kdnr"])))
  {
  $query = mssql_query("SELECT * FROM KUNDE WHERE(Name like ".$_REQUEST["name"].")"); 
  } 
  if ((empty($_REQUEST["name"])))
   {
  $query = mssql_query("SELECT * FROM KUNDE WHERE(Kundennumm like ".$_REQUEST["kdnr"].")"); 
  $result = mssql_fetch_assoc($query);
   }
Den Error bekomm:
Warning: mssql_query() [function.mssql-query]: message: Ungültiger Spaltenname 'Jordan'. (severity 16) in C:\Server\xampp\htdocs\query.php on line 23
Wenn ich die Abfrage nach dem Namen weg lasse also nur nach Kundennummer frage dann klappt es...

EDIT:
Also die Frage ist eher warum der versucht den Namen aus Spalte zu suchen, da die Spalte ja "Name" heißt wie im Query angegeben.
 
Zuletzt bearbeitet:
Ich vermute mal, dass du Anführungszzeichen um den String machen musst, also:
Code:
$query = mssql_query("SELECT * FROM KUNDE WHERE(Name like '".$_REQUEST["name"]."')");

Und nicht vergessen, die Strings zu escapen, denn so wie du's momentan hast, ist es eine potenzielle Sicherheitslücke.
 
Zuletzt bearbeitet:
Super danke genau das wars.
Allerdings versteh ich noch nicht so ganz wieso ich das bei einem String machen muss, bei Integers nicht.
 
Bei Integers schadet es auch nicht. Das Problem ist, dass der SQL Server ja nicht wissen kann, ob du einen String meinst oder den Name einer Column. Z.B wäre folgendes ja eine legitime Query "select * from kunde where name like kundennumm".
 
Zurück
Oben