Anfängerfrage, Werte in SQL Datenabnk abspeichern

die_maus

Grünschnabel
Hallo,

ich versuche mich gerade zum ersten aml in PHP - SQL

Dabei habe ich versucht ein ganz einfaches Script zu schreiben.

PHP:
<?php 
$host = "localhost"; 
$user = "xxxx"; 
$pass = "xxxx"; 
$db = "xxxx";

mysql_connect("$host","$user","$pass") or die
("Keine Verbindung moeglich");
mysql_select_db("$db") or die
("Die Datenbank existiert nicht");  
$eingabe = "test";
echo $eingabe;

$content = "INSERT INTO test_log (id) VALUES ('$eingabe')";
  
$eintragen = mysql_query($content) or die(mysql_error());  
?>

So, im SQLadmin habe ich test_log mit id erstellt.

Wenn ich nun das php auf dem Server ausführe wird jedes mal wenn ich es aufrufe ein neuer Eintag erstellt der dann fortlaufend durchnummeriert ist. Das sollte aber nicht Sinn und Zweck sein. Ich möchte, dass $eingabe dort eingetragen wird. Was habe ich da flasch gemacht?
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    32,3 KB · Aufrufe: 6
Zuletzt bearbeitet von einem Moderator:
Du wirs das Feld ID als AutoIncrement hinterlgt haben (selbständig durchnumerierend).
Zeig mal dein CREATE TABLE - Statement der Tabelle.

Zudem ist id warscheinlich ein Nummerfeld - du willst aber ien Text einfügen.
 
Der erste Fehler ist das du deine Zugangsdaten öffentlich hier geschriebn hast. Ändere im eigenen Interesse deinen Beitrag und mache einfach "xxx" daraus.

Dann solltest du dir auch gleich mal mysql_real_escape_string anschauen und im Code verwenden.
 
Ja, du hattest recht. das War ein Nummernfeld. Habe das auf Text geändert und nun geht es.

Die Zugangsdaten habe ich nicht geändert, weil ich dachte, dass der Serverpfad noch fehlt und ohne dem geht da doch nichts.
 
OK, danke. Arbeite mich da mal durch. Bin noch ganz am Anfang und bin auch über jede Hilfe froh. Bis die Bücher da sind schlage oich mich durch diverse tutorials im Internet.
 
Ich habe dazu nochmal eine Frage,

Also speichern tue ich jetzt mit

PHP:
$content = "INSERT INTO test_log (id) VALUES ( '$eingabe')";

und bearbeiten kann ich das so

PHP:
$content = 'UPDATE `test_log` SET `id` = \'textinput\';';

Aber wie kann ich da eine Variable mit reinnehmen?

so geht das nicht:

PHP:
$content = 'UPDATE `test_log` SET `id` = \$eingabe\;';

Da bekomme ich den Error
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 '\$eingabe\' at line 1
 
Ein String in PHP der in ' gesetzt ist wird nicht geparst. Ergo wird $eingabe als Text übergeben. Du solltest mit " arbeiten

PHP:
$content = "UPDATE `test_log` SET `id` = '$eingabe';";  
$content = "UPDATE `test_log` SET `id` = '{$eingabe}';";
$content = 'UPDATE `test_log` SET `id` = \''. $eingabe . '\';';
$content = sprintf('UPDATE `test_log` SET `id` = \'%s\';', $eingabe);
//etc.

Ich empfehle die erste Variante. Merh dazu findest du in der Onlie-Doku zu PHP unter Strings
 
Zurück