Avatar billede mrfunder Nybegynder
14. januar 2008 - 13:45 Der er 7 kommentarer og
1 løsning

Fejl I mysql query

Hej Eksperter. Jeg er ved at lave et login system, dog får jeg en mysql fejl. Jeg tror fejlen ligger i min "dobbelt WHERE" (Jeg er umiddelbart nybegynder til oop)

Hvordan kan jeg lave dette korrekt?


Invalid query: 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 '= AND = d41d8cd98f00b204e9800998ecf8427e' at line

$dbconnect = new DB_Class('database', 'username', 'password');

if(isset($_POST["global_user"]) && isset($_POST["global_pass"])) {  //trying to catch posts

$userquery = "SELECT id,username,password,sirname FROM table WHERE $username = ".strtolower($_POST[global_user])." AND $password = ".md5(strtolower($_POST[global_pass]))."";

$result = $dbconnect->getone($userquery);
       
if($result) {  //if correct information: perform login
           
        $user = $dbconnect->fetch($userquery); // do stuff








<?
class DB_Class
{

var $db;

function DB_Class($dbname, $username, $password)
{
  $this->db = mysql_connect ('localhost', $username, $password)
    or die ("Unable to connect to Database Server");

  mysql_select_db ($dbname, $this->db)
    or die ("Could not select database");
}

function query($sql)
{
  $result = mysql_query ($sql, $this->db)
    or die ("Invalid query: " . mysql_error());
  return $result;
}

function fetch($sql)
{
  $data = array();
  $result = $this->query($sql);
  while($row = mysql_fetch_assoc($result)) {
    $data[] = $row;
  }
  return $data;
}

function getone($sql)
{
  $result = $this->query($sql);
  if(mysql_num_rows($result) == 0)
    $value = FALSE;
  else
    $value = mysql_result($result, 0);
  return $value;
}

}
?>


På forhånd tak!
Avatar billede cpufan Juniormester
14. januar 2008 - 13:49 #1
prøv denne:

$userquery = "SELECT id,username,password,sirname FROM table WHERE $username = '".strtolower($_POST[global_user])."' AND $password = '".md5(strtolower($_POST[global_pass]))."'";
Avatar billede mrfunder Nybegynder
14. januar 2008 - 14:05 #2
Invalid query: 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 'table WHERE = '' AND = 'd41d8cd98f00b204e9800998ecf8427e'' at line 1

Virker desværre heller ikke- er det selve min class der skal skrives om?
Avatar billede dkfire Nybegynder
14. januar 2008 - 14:25 #3
Det er fordi din $password og din $username ikke indeholder noget som helt.
Normalt skrive en where som:
WHERE feltnavn = 'data'
Avatar billede dkfire Nybegynder
14. januar 2008 - 14:26 #4
helst da.
Kunne det tænkes du mente:

$userquery = "SELECT id,username,password,sirname FROM table WHERE username = ".strtolower($_POST[global_user])." AND password = ".md5(strtolower($_POST[global_pass]));
Avatar billede mrfunder Nybegynder
15. januar 2008 - 13:50 #5
Desværre virker intet af det.
Avatar billede dkfire Nybegynder
15. januar 2008 - 14:48 #6
Hvad skriver den så af fejl. ???
Avatar billede mrfunder Nybegynder
28. januar 2008 - 16:19 #7
Fejlen lå i selve min class- classen er nu skrevet helt om. Jeg vælger at lukke til egen fordel.
Avatar billede dkfire Nybegynder
28. januar 2008 - 18:20 #8
Jamen jeg takker for at kunne spilde lidt tid på dig ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester