Problem mit der Verbundungsherstellung zu mySQL

  • #1
A

Aziz

Bekanntes Mitglied
Themenersteller
Dabei seit
25.04.2006
Beiträge
127
Reaktionspunkte
0
Hallo (ich bin's wieder)

wie auch schon vorher erwähnt, bin ich dabei PHP zu lernen und möchte auch ergänzend mit Datenbanken arbeiten (mySQL).

Als Vorlage zum Einstieg habe ich folgendes PHP-Prog zu Verfügung:
Code:
<html>
<body>
<?php
   $db = mysql_connect();

   $res = mysql_db_query(firma,
          select * from personen);
   $num = mysql_num_rows($res);
   echo $num Datensätze gefunden<br>;

   for ($i=0; $i<$num; $i++)
   {
      $nn = mysql_result($res, $i, name);
      $vn = mysql_result($res, $i, vorname);
      $pn = mysql_result($res, $i, personalnummer);
      $ge = mysql_result($res, $i, gehalt);
      $gt = mysql_result($res, $i, geburtstag);
      echo $nn, $vn, $pn, $ge, $gt <br>;
   }

   mysql_close($db);
?>
</body>
</html>

Und wenn ich das Programm im Browser aufrufe bekomme ich folgendes:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user->ODBC'@'localhost' (using password: NO) in C:\Programme\xampp\htdocs\uf01.php on line 4

Warning: mysql_db_query() [function.mysql-db-query]: Access denied for user->ODBC'@'localhost' (using password: NO) in C:\Programme\xampp\htdocs\uf01.php on line 7

Warning: mysql_db_query() [function.mysql-db-query]: A link to the server could not be established in C:\Programme\xampp\htdocs\uf01.php on line 7

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\uf01.php on line 8
Datensätze gefunden

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in C:\Programme\xampp\htdocs\uf01.php on line 21


Ich arbeite mit XAMPP. Und dort sehe ich auch, dass neben APACHE auch mySQL läuft (running).

aber wenn ich unte Windows mySQL starten möchte mit C:\xampp\mySQL\mysql kommt die Meldung

ERROR 1045 <28000>Access denied for user->ODBC'@'localhost' <using passwort:NO>

Also ich bin total durcheinander und komme nicht mehr weiter. Wäre echt dankbar, wenn mir jemand helfen könnte.
 
  • #2
Jo schön und gut, aber wenn du das so machst, denkt sich dein Script ungefähr folgendes:

=> Wat will'n der von mir, Connecten soll ich, aber wohin, und wer bist du überhaupt :2funny: :2funny:

soll heißen => falsche Syntax, bzw. fehlende Parameter ;)

Code:
<?php
$linkID = mysql_connect( host, user, password );
?>
 
  • #3
LOL Danke

komme mir ja vor wie n angehender Reisende, der keinen Pass besitzt und nicht weiß, wohin es gehen soll  ;D

nun gut, habe jetzt deinen Code eingegeben und sieht dann folgendermaßen aus

Code:
<html>
<body>
<?php
  
    
    
   $linkID = mysql_connect( host, <user>, <Passwort> );
  
   
   $db = mysql_connect( host, <user>, <Passwort>  );

   $res = mysql_db_query(firma,
          select * from personen);
   $num = mysql_num_rows($res); // Diese Zeile verursacht die Meldung (line14)
   echo $num Datensätze gefunden<br>;

   for ($i=0; $i<$num; $i++)
   {
      $nn = mysql_result($res, $i, name);
      $vn = mysql_result($res, $i, vorname);
      $pn = mysql_result($res, $i, personalnummer);
      $ge = mysql_result($res, $i, gehalt);
      $gt = mysql_result($res, $i, geburtstag);
      echo $nn, $vn, $pn, $ge, $gt <br>;
   }

   mysql_close($db);
?>
</body>
</html>

Ausgabe:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\uf01.php on line 14
Datensätze gefunden

Wieso diese Fehlermeldung?  :(


Und noch eins:

Was ist denn der Unterschied zwischen den beiden Codes
Code:
$linkID = mysql_connect( host, <user>, <Passwort> );
 
Code:
$db = mysql_connect( host, <user>, <Passwort>  );



Gibt es denn für das Lernen von mySQL kein leichtes Beispielprogramm wie bei jeder Prog.Sprache?  Hallo World-mäßig
 
  • #4
Ähm, wenn du es so machst, wird es wohl kaum gehen, wer ist host :2funny: :2funny:

Da muss der MySQL-Server rein ;) in der Regel => localhost :°

Und wenn ich schreibe => $linkID dann ist das reine Gewohnheit, narürlich kannst du es nennen wie du lustig bist, in deinem Bsp. also => $db

Und eine Datenbank hast du auch noch nicht gewählt ;)

im Ganzen:

Code:
<?php
if(!$db = mysql_connect( localhost, user_123, pass_456 )) die(mysql_error());
if(!mysql_select_db( datenbank_name )) die(mysql_error());

$res = mysql_query(select * from personen);

$num = mysql_num_rows($res); // Diese Zeile verursacht die Meldung (line14)
echo $num Datensätze gefunden<br>;

for ($i=0; $i<$num; $i++) {
   $nn = mysql_result($res, $i, name);
   $vn = mysql_result($res, $i, vorname);
   $pn = mysql_result($res, $i, personalnummer);
   $ge = mysql_result($res, $i, gehalt);
   $gt = mysql_result($res, $i, geburtstag);
   echo $nn, $vn, $pn, $ge, $gt <br>;
}

mysql_close($db);
?>
 
  • #5
Ja hatte tatsächlich localhost eingegeben ;)

Nun kommt die Meldung

Parse error: parse error, unexpected T_EXIT in C:\Programme\xampp\htdocs\uf01.php on line 3

Line 3:
Code:
if(!$db = mysql_connect( localhost, user, pw ) die(mysql_error());

(user/pw geändert)


Was ist denn jetzt schon wieder faul? ich werde verrückt :|
 
  • #6
Schau mein Bsp. nochmal an, da hatte eine Klammer gefehlt, wurde aber schon berichtigt ;)
 
  • #7
AH sag das doch ;)


Habe Datenbank_name durch meinen ersetzt aber trotzdem meckert er

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\uf01.php on line 8
Datensätze gefunden

Irgendwie will es nicht funktionieren.
 
  • #8
Datenbank angelegt, Tabelle erstellt, Script getestet => FUNKTIONIERT :°

Un nu ?? ??? ??

Nachtrag, funzt natürlich nur wenn was in der Tabelle drinn is :1

Dein Script ein bissle abgeändert ;)

Code:
<?php
if(!$db = mysql_connect( localhost, root, root )) die(mysql_error());
if(!mysql_select_db( test )) die(mysql_error());

$res = mysql_query(select * from personen);

if($num = @mysql_num_rows($res)) {
	echo $num Datensätze gefunden<br /><br />;
	while($row = mysql_fetch_object($res)) {
		echo $row->name ., 
		    .$row->vorname ., 
		    .$row->personalnummer ., 
		    .$row->gehalt . €, 
		    .$row->geburtstag
		    .<br />;
	}
}
else {
	echo Keine Datensätze gefunden!;
}
mysql_close($db);
?>
 
  • #9
AAAAH endlich,

ich hatte gehofft, dass er mir trotzdem anzeigt 0 Datensätze gefunden und deshalb keine angesetzt. Ja gut hab dann 2 Einträge gemacht. Nu funktioniert es. Ich danke dir vielmals. Echt super  :1. Danke..[br][br]Erstellt am: 22.06.06 um 23:04:00
[br]eine Frage noch bitte:

Wenn ich mit PHP eine Tabelle erzeugen möchte bei bestehender Datenbank, was muss ich denn da beachten.

hab folgendes eingegeben...

Code:
<html>
<body>
<?php
   if(!$db = mysql_connect( localhost, root, pw )) die(mysql_error());
   if(!mysql_select_db( firma  )) die(mysql_error());

   create table praktikant //line 7
(
   name char(30),
   vorname char(25),
   personalnummer int,
   gehalt double(10,2),
   geburtstag date
);

   mysql_close($db);
?>
</body>
</html>

Und es kam eine Meldung (war ja klar)
Parse error: parse error, unexpected T_STRING in C:programmexampphtdocsuf04.php on line 7

Was habe ich verkehrt gemacht ?
 
  • #10
Code:
<html>
<body>
<?php
if(!$db = mysql_connect( localhost, root, pw )) die(mysql_error());
if(!mysql_select_db( firma )) die(mysql_error());

$query = CREATE TABLE IF NOT EXISTS praktikant
	.\n (
	.\n name varchar(30) default NULL,
	.\n vorname varchar(30) default NULL,
	.\n personalnummer int(11),
	.\n gehalt decimal(11,2) default NULL,
	.\n geburtstag date default NULL
	.\n );
mysql_query($query);


  mysql_close($db);
?>
</body>
</html>
 
  • #11
Jou... du kannst nicht einfach MySQL-Code in PHP code reinschreiben... der PHP-Prozessor denkt, das ist PHP Code, kann das aber nicht verarbeiten... ALLES was du per SQL am MySQL-Server vornehmen musst, kommt in entsprechende PHP-Funktionen rein. Eben wie
Code:
mysql_query(CREATE TABLE blablabla...)
In anderen Programmiersprachen bzw. deren SQL-Server-Schnittstellen, gibt es dann tw. auch separate Funktionen für verschiedene Arten der SQL-Server-Manipulation. Für ein einfaches SELECT gibts dann z. B. ne executeQuery(...), für das Erzeugen von Tabellen dann möglicherweise eine eigene createTable(String tableName, ...)-Funktion. Ist aber bei MySQL imo nicht so... d.h. es geht alles (natürlich nur mit entsprechenden Rechten) über mysql_query(...)

Lg
M.
 
Thema:

Problem mit der Verbundungsherstellung zu mySQL

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.836
Beiträge
707.957
Mitglieder
51.489
Neuestes Mitglied
DonMartin
Oben