mysql_query

blck

blck

Routinier
Hallo,
ich bin grad dabei, rein aus Übung, ein Telefonbuch mit PHP und MYsql zu schreiben.
Genaugenommen geht es aber nur Datenbanken im Gedächtnis zu festigen:

Nun zu meinem Problem:
ich habe 4 Dtaein (index.php;db_connect;interface.php;datasave.php).
Wenn ich aber nun im Firefox in die Eingabefelder etwas reinschreibe, schickt er es ab und mysql_error(); gibt kein Fehler aus.

Hier noch meine Datein, ich denke ihre Aufgaben ergeben sich aus den Namen:

index.php:
PHP:
<?
//Verbindung zur blck Datenbank (telbook) herstellen
include 'db_connect.php';
//Interface laden
include 'interface.php';
//Daten Speichern
include 'datasave.php';
?>

db_connect.php
PHP:
<?
$conn = mysql_connect ("localhost","blck","*******");
	if (!$conn) 
	{
		echo "Keine Verbindung zu $REMOTE_ADRESS m&Ouml;glich!";
		exit ();
	}
	mysql_select_db ("telbook");
?>

interface.php (die eigentlich eine *.html sein sollte):D
PHP:
<html>
	<head>
		<title>Telefonbuch</title>
	</head>
<body bgcolor="black">
 <div align="center">
  <form name="telebook" action="" method="POST">
	<table border="0">
	<td><tr>
	<font color="green"><b>NAME:</b></font>
	<input type="text" name="name" value="Name">
	</tr>
	<tr>
	<font color="green"><b>NUMMER:</b></font>		
	<input type="text" name="nummer" value="Telefonnummer">
	</tr>	
	<input type="submit" value="Absenden">
  </form>
 </div>
</body>
</html>

und zum Schluss die datasave.php
PHP:
<?
$name = $_POST["name"];
$nummer = $_POST["nummer"];

mysql_query("INSERT INTO telbook
		(name,nummer)
	VALUES  ($name,$nummer)");
mysql_error();
?>
 
Als so kann dir mysql_error() auch nichts bringen, die Funktion liefert einen String zurück. Das heißt nicht, dass sie ihn auch automatisch ausgibt. Du müsstest dir mysql_error() auch z.B. per echo mysql_query(); ausgeben.
 
Bekomme jetzt:
Code:
No database selected
Warning: Wrong parameter count for mysql_query() in /var/www/telbook/datasave.php on line 9
zurück!

Aber eigentlich funktioniert der connect zu meiner DB ja, sonst müsste ich meine eigene Fehlermeldung zurückbekommen.
 
Häng mal an die query Funktion als zweiten Parameter deine Connection an, also $conn
 
PHP:
<?
$name = $_POST["name"];
$nummer = $_POST["nummer"];

mysql_query("INSERT INTO $conn telbook
		(name,nummer)
	VALUES  ($name,$nummer)");
echo mysql_error($conn);
echo mysql_query();
?>

so siehts jetzt aus. Bekomm aber immernoch die selben Fehlermeldungen!

gruß Blck
 
Danke für deine Hilfe, jetzt siehts so aus:
PHP:
<?
$name = $_POST["name"];
$nummer = $_POST["nummer"];

mysql_query("INSERT INTO telbook
		(name,nummer)
	VALUES  ($name,$nummer)", $conn);
echo mysql_error($conn);

?>

Wenn ich alles in die index.php packe, passiert das Selbe!

Gruß Blck
 
Hallo,

eventuell schlägt das Auswählen der Datenbank fehl.

Nur nebenbei: Es ist gefährlich direkt Daten aus POST zu übernehmen. Die Funktionen sprintf und mysql_real_escape_string helfen hier.

db_connect.php
PHP:
<?
$conn = mysql_connect ("localhost","blck","*******");
	if (!$conn) 
	{
		echo "Keine Verbindung zu $REMOTE_ADRESS m&Ouml;glich!";
		exit ();
	}
	var_dump(mysql_select_db ("telbook"));
?>

grüße
surf2me
 
Zuletzt bearbeitet:
Funktioniert denn der mysql_select_db? Musst du mal gucken, aber die Funktion gibt bestmmt True oder False zurück..

Edit: wie surf2me sagt^^
 
Viele der mysql_*-Funktionen liefern boolsche Werte - also true oder false - zurück.
Das kann dir eine Hilfe sein, wenn du diese Rückgabewerte nutzt. Beispiel:

Code:
if (mysql_query("use telbook;")) {
  // weitermachen mit den Telefonbuch-Sachen
}

else
{
  echo "Konnte die Datenbank nicht auswählen. Fehlermeldung: <br />" . mysql_error();
}

In dem Fall und da dein Script recht klein ist, macht es vielleicht auch Sinn, die Sachen nicht in separate Dateien aufzuteilen. Das passt allemal alles in eine Datei. :)
 
Man kann die Bool-Werte auch recht schön abfragen indem man sowas verwedet:
PHP:
$result=mysql_query($query) or user_error("Anfrage fehlgeschlagen: " . mysql_error(), E_USER_ERROR);
Weil bei PHP das or "faul" ist, d.h. ist Bed. 1 schon war, testet er gar nicht die zweite Bed., und ist Bed. 1 falsch, testet er die zweite und erzeugt dabei den Fehler.
 
Hallo,
war übers WE beschäftigt, meine db_connect sieht jetzt wie folgt aus:
PHP:
<?
$conn = mysql_connect ("localhost","blck","***************(Hoffentlich hats noch keiner gelsen");
	if (!$conn) 
	{
		echo "Keine Verbindung zu $REMOTE_ADRESS m&Ouml;glich!";
		exit ();
	}
    	var_dump(mysql_select_db ("telbook"));
?>
Jetzt bekomm ich auf meiner Page folgende Meldungen:
bool(false)
No database selected

Irgendwie ist da immernoch der Wurm drin, weil der connect ansich muss ja funktioniert haben sonst hät ich die Fehlermeldung von mir bekommen.

Vielen Dank für eure Hilfe,
Blck
 
Zuletzt bearbeitet:
Die Datenbank telbook existiert auch? (Nur zur Sicherheit ;) )
 
HAHA:devil:
ihr werdets nich glauben aber das wars :D:D:D:D, hatte Tabelle und Datenbank vertauscht!

Leider bekomm ich jetzt die Meldung
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 ')' at line 3

DANKE, blck

und tschuldigung für soviel Dummheit
 
Falls du bei
Danke für deine Hilfe, jetzt siehts so aus:
PHP:
<?
$name = $_POST["name"];
$nummer =  $_POST["nummer"];

mysql_query("INSERT INTO telbook
		(name,nummer)
	VALUES  ($name,$nummer)", $conn);
echo mysql_error($conn);

?>

Wenn ich alles in die index.php packe, passiert das Selbe!

Gruß Blck

meinst, probier mal:

PHP:
<?
$name = isset($_POST["name"]) ? $_POST['name'] : "";
$nummer =  isset($_POST["nummer"]) ? $_POST['nummer'] : "";

if(!empty($name) && !empty($nummer)){
mysql_query("INSERT INTO telbook
		(name,nummer)
	VALUES  ('$name','$nummer')", $conn);
echo mysql_error($conn);
}
?>
 
Zuletzt bearbeitet:
So nachdem sich letztes Wochenende das erste Problem gelöst hatte, stehe ich jetzt vor dem nächsten:
Hab alle Datein in der index.php gesammelt, sprich es exestiert nur noch die index.php.
Hier mal der Code
PHP:
<?
$conn = mysql_connect("localhost","blck","password");
	if (!$conn) 
	{
		echo "Keine Verbindung zu m&ouml;glich!";
		exit ();
	}
    	mysql_select_db ("benutzer");

$username = $_POST["username"];
$passwd = $_POST["passwd"];

mysql_query("INSERT INTO daten
		(name,passwd)
	VALUES  ($name,$passwd)", $conn);
echo mysql_error($conn);

?>

<html>
	<head>
		<title>Telefonbuch</title>
	</head>
<body bgcolor="black">
 <div align="center">
  <form name="benutzer" action="" method="POST">
	<table border="0">
	<td><tr>
	<font color="green"><b>Username</b></font>
	<input type="text" name="username" value="Username">
	</tr>
	<tr>
	<font color="green"><b>Passwort</b></font>		
	<input type="password" name="passwd" value="Passwort">
	</tr>	
	<input type="submit" value="Absenden">
  </form>
 </div>
</body>
</html>

Und als Fehlermeldung erhalte ich wie erwähnt:
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 ')' at line 3

Wäre über nochmalige Unterstützung froh.
Gruß Blck
 
Code:
mysql_query("INSERT INTO daten 
        (name,passwd) 
    VALUES  ($name,$passwd)", $conn);

Die Werte gehören in Anführungszeichen:

Code:
mysql_query('INSERT INTO daten 
        (name,passwd) 
    VALUES  ("' . $name . '", "' . $passwd . '")', $conn);
 
Danke das wars!

Gruß Blck
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Hallo,
so dass hat soweit wunderbar geklappt, hab keine Probleme mehr beim Daten speichern/laden.
NUR,
bin grad auf ne where Funktion gestoßen, die nicht Funktioniert.
Ich weiß auch nicht so sicher ob $res dann nen boolschen Wert zurück gibt?!

Hier mal die Where Abfrage:
PHP:
$res= mysql_query("SELECT name,passwd
	FROM daten
	WHERE (name=$username)&&(passwd=$passwd)");

Bin mir bei der Verknüpfung auch net so ganz sicher, ich weiß das es bei if-Abfragen so läuft aber bei where?!

Danke für die Hilfe,
Blck
 
Zuletzt bearbeitet:
Und du musst, afaik, auch hier $username und $passwd in ' ' setzen.
 

Ähnliche Themen

Nginx als Reverse Proxy für Nextcloud und Emby

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

Breite einer Tabelle via CSS definieren

dovecot und postfix Konfiguration Problem

NagiosGrapher 1.7.1 funktioniert nicht

Zurück
Oben