mysql klasse macht faxen!!

bppg

Mitglied
hallo leute, wieder ein komisches problem.

ich habe eine mysql klasse geschrieben um verbindungen zu eröffnen und zu beenden.
er zeigt aber dauernd fehrler an.

der code:
mysql_connect.php

Code:
<?php

require_once(cmsPATH."mysql_server.php");


	class MySQL_Server {
		
		var $connected = NULL;
		
		var $host = $mysql_host;
		var $user = $mysql_user;
		var $pass = $mysql_pass;
		var $db = $mysql_db;
		var $prefix = $mysql_prefix;
			
			
			function connect_mysql () {
				
				$this->connected = mysql_connect($this->host, $this->user, $this->pass);
					
					if(mysql_error() == 0) {
						mysql_select_db($this->db, $this->connected);
					}
					
			}
			
			
			function disconnect_mysql () {
				$this->connected = mysql_close();
			}
			
	}


	$mysql = new MySQL_Server;


?>

mysql_server.php

Code:
<?php

$mysql_host	= "localhost";
$mysql_user	= "root";
$mysql_pass	= "";
$mysql_db	= "memm";
$mysql_prefix	= "memm_";

?>

Die Klasse wird in admin.php per require_once(cmsPATH."core/mysql_connect.php"); reingeladen. jedoch gibt das einen syntax error aus.

wenn ich die in der klasse definierten Variablen direkt dort eintrage, dann kommt der syntax fehler nicht, aber dafür scheitert er anscheind an der verbinung selbst, denn dann kommt ein fehler, dass ein konflikt mit passwort, etc. auftritt.

wo liegt der fehler?


PS: die klasse verwende ich in der auth.php

Code:
<?php

if(isset($_POST["check"]))	{
	
	$mysql->connect_mysql;
		
		$db = mysql_query("
				SELECT
					name,
					pass
				FROM
					".$mysql->prefix."users
				WHERE
					name = '".mysql_real_escape_string($_POST["benutzer"])."' &&
					pass = '".md5(mysql_real_escape_string($_POST["passwort"]))."'
			") or die(mysql_error());
			
			
		if(mysql_num_rows($db) > 0) {
			
			$_SESSION["user"] = clear_chars($_POST["benutzer"]);
			$_SESSION["pass"] = md5(clear_chars($_POST["passwort"]));
			
		} else {
			$theme->assign("erro_message", "Anmeldung ist fehlgeschlagen!");
		}
		
	$mysql->disconnect_mysql;

}


?>
 
Zuletzt bearbeitet:
Und was kommt als Fehler? Bitte mysql Error oder sonstige Errors posten

Edit: Erster Fehler, du kannst nicht einfach eine Datei includen und dort Variablen definieren und dann in der Klasse auf diese zugreifen. Du musst schon die Variablen als Konstante deklarieren
 
so wie es gerade ist kommt folgender fehler:

Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\script_archive\memm\core\mysql_connection.php on line 10
 
OK. Dann hab ich die Klasse mal umgeschrieben .. ein wenig.
So:
Code:
<?php

class MySQL_Server {
	
	var $connected = NULL;
	
	var $host = "localhost";
	var $user = "root";
	var $pass = "";
	var $db = "memm";
	var $prefix = "memm_";
		
		
		function connect_mysql () {
			
			$this->connected = mysql_connect($this->host, $this->user, $this->pass);
				
				if(mysql_error() == 0) {
					mysql_select_db($this->db, $this->connected);
				}
				
		}
		
		
		function disconnect_mysql () {
			$this->connected = mysql_close();
		}
		
}


$mysql = new MySQL_Server;


?>

und wenn ich mich nun einloggen will (siehe auth.php - erster Beitrag), kommt folgender Fehler:
Code:
Notice: Undefined property: MySQL_Server::$connect_mysql in C:\xampp\htdocs\script_archive\memm\core\auth.php on line 5

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\script_archive\memm\core\auth.php on line 14

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\xampp\htdocs\script_archive\memm\core\auth.php on line 14

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\script_archive\memm\core\auth.php on line 15

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\xampp\htdocs\script_archive\memm\core\auth.php on line 15

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\script_archive\memm\core\auth.php on line 16

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\xampp\htdocs\script_archive\memm\core\auth.php on line 16
Access denied for user 'ODBC'@'localhost' (using password: NO)
 
$mysql->connect_mysql; .... meinst wohl eher $mysql->connect_mysql();

und dann noch das hier:


PHP:
$db = mysql_query("
				SELECT
					name,
					pass
				FROM
					".$mysql->prefix."users
				WHERE
					name = '".mysql_real_escape_string($_POST["benutzer"])."' &&
					pass = '".md5(mysql_real_escape_string($_POST["passwort"]))."'
			", $mysql->connected) or die(mysql_error());


Ich würde dir dann aber gleich empfehlen das Query auch in der selben Klasse abzuarbeiten.
 
OHHAJAJA, danke sehr, funktioniert, wie konnt ich blos so doof sein^^, Mensch ;D

aber wozu soll ich die connection bei der query nochmal angeben? Ohne gehts auch.
und wozu gibt man das bei mysql_select_db() auch an?

Also bei mir funktioniert das auch immer ohne..^^ oder ist das ein fataler Fehler meinerseits?
 
Falls du mehrere Connection zu verschiedenen MYSQL Server hast kannst du dem Query genau sagen welche Connection es nehmen soll. Es bietet sich immer an das zu machen um so eine eindeutige Verknüpfung zum MYSQL Server sicher zu stellen.
 

Neue Beiträge

Zurück