Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

SQL Syntax Error

Frage Entwicklung Datenbanken

Mitglied: Fleckmen

Fleckmen (Level 1) - Jetzt verbinden

05.03.2010, aktualisiert 16:47 Uhr, 6047 Aufrufe, 10 Kommentare

Hi,

Wenn ich mein Formular im Browser Absende kommt immer folgender Fehler:

Ungültige Abfrage: 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 1

Ich vermute mal dass ich etwas falsch gemacht habe bei dem SET Befehl.

Meine Problemdatei:

<?php

include 'config.php';

$sql = " INSERT INTO computer ";
$sql .= " SET ";
$sql .= " name ='". $_POST['name'] ."', ";
$sql .= " ip ='". $_POST['ip'] ."', ";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}

?>

Mein Formular:

<form action="newid.php" Method="post" enctype="text/html">

<table align=center >

<tr>
<th colspan=2 >Daten des Rechners:</th>
</tr>


<tr>
<td>Name:</td>
<td><input type="text" name="name" size="40" maxlength="40" ></td>
</tr>


<tr>
<td>IP:</td>
<td><input type="text" name="ip" size="40" maxlength="40" ></td>
</tr>

<tr>
<td><input type="submit" value="Absenden"></td>

<td><a href="index.php" >zurück</a></td>

</tr>
</table>
</form>

Meine config.php

<?php
define ( 'MYSQL_HOST', 'localhost' );
define ( 'MYSQL_BENUTZER', '*' );
define ( 'MYSQL_KENNWORT', '
*' );
define ( 'MYSQL_DATENBANK', 'datenbank' );

$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
if ( $db_link )
{
echo 'Verbindung erfolgreich';
}
else
{
die('keine Verbindung möglich: ' . mysql_error());
}

mysql_select_db("DATENBANK") or die
("Die Datenbank existiert nicht.");
?>

wäre nett wenn ihr mir sagen könntet ob das so richtig ist!
evt. Umformatieren

mfg Fleckmen
Mitglied: maretz
05.03.2010 um 16:37 Uhr
Klar mache ich das... Auch ohne dein Formular zu kennen - ich bin nämlich nebenberuflich Hellseher...

Ebenfalls ist es überflüssig dein gesamten SQL-Statement (ggf. sogar noch Lesbar...) hier reinzustellen. Wir alle lieben das erraten von Problemen...

Sorry, aber wenn du nur sowenig Hilfe geben kannst/willst dann bleibt mir zu sagen: Ich habe zwar keine Lösung - aber ich bewundere DEIN Problem!
Bitte warten ..
Mitglied: Indrador
05.03.2010 um 16:42 Uhr
Hallo Fleckmen,

was soll die Abfrage machen? Dein Konstrukt ist eine Mischung aus Syntax für UPDATE und Befehlt für INSERT INTO.

Insert into computer (name, ip) Values (Test1, 192.168.0.1)

so befüllst du die Tabelle SET benutzt man beim Update Statement nicht beim Befüllen.


Beispiel für Update
UPDATE computer
SET
name = 'Test'
where name = 'IchBinNamenlos'

Gruß
Bitte warten ..
Mitglied: Fleckmen
05.03.2010 um 16:52 Uhr
Ich möchte meine Datenbank mit den Einträgen aus dem Formular füllen.
Die Tabelle in der Datenbank besteht aus

id NAME IP
Bitte warten ..
Mitglied: Biber
05.03.2010 um 17:02 Uhr
Moin Fleckmen,

Zitat von Fleckmen:
Ich möchte meine Datenbank mit den Einträgen aus dem Formular füllen.
Ja, aber dafür gibt es doch zwei mögliche Fälle:
a) ein INSERT - Datensatz ist komplett neu
b) ein UPDATE - Datensatz ist vorhanden und wird aktualisiert in einigen Feldern


Die Tabelle in der Datenbank besteht aus
id NAME IP
Im Kontext Datenbank-Tabellen sollte noch ergänzt werden ob es einen "eindeutigen Schlüssel" gibt/geben soll.
Andernfalls ist es reine Glückssache, ob ein INSERT klappen kann.

P.S. Lass dich nicht abschrecken von den vielen pingeligen Rückfragen.
Sei froh, dass du früh auf die ganzen Stolpersteine aufmerksam gemacht wirst und nicht erst beim "go live" deiner Appz damit konfrontiert wirst

Grüße
Biber
Bitte warten ..
Mitglied: Fleckmen
05.03.2010 um 17:56 Uhr
Ich beschäftige mich erst seit ein paar Tagen mit dem eintragen von Daten in MySql.

Es soll jedes mal ein neuer Datensatz erstellt werden.
Außerdem muss ich noch hinzufügen dass wenn kein Eintrag gemacht wird

Meine Datenbank:
http://www.pic-upload.de/view-4831658/Unbenannt.jpg.html
Bitte warten ..
Mitglied: masterG
05.03.2010 um 18:15 Uhr
MySQL INSERT / UPDATE

Gruß
masterG
Bitte warten ..
Mitglied: Fleckmen
05.03.2010 um 19:21 Uhr
Ich habe jetzt meine Datei geändert:

<?php

include 'config.php';

$sql = " INSERT INTO computer (name, typ, os, ip, mac) VALUES(name, typ, os, ip, mac)";
$sql .= " name =$_POST['name']";
$sql .= " typ =$_POST['typ']";
$sql .= " os =$_POST['os']";
$sql .= " ip =$_POST['ip']";
$sql .= " mac =$_POST['mac']";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}

?>

Jetzt habe ich aber ein einen neuen Error:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\xampp\htdocs\newid.php on line 6
Bitte warten ..
Mitglied: mrtux
05.03.2010 um 19:32 Uhr
Hi !

Sorry aber warum lernst Du nicht mal erst die Syntax von SQL und PHP, so wie Du das angehst wird das nie was. Alle Infos über (My-) SQL und PHP gibt es doch frei im Net, siehe masterG's Post....Man setzt sich doch auch nicht ans Lenkrad eines Porsches, wenn man noch nicht mal in der Fahrschule war...Kopfschüttel...

mrtux
Bitte warten ..
Mitglied: Guenni
05.03.2010 um 21:01 Uhr
Hi Fleckmen,

wenn ein SQL-Statement nicht funktioniert, ist es hilfreich, sich dieses

mal mit echo $sql; ausgeben zu lassen. Dann sieht man schonmal, ob

die Syntax korrekt ist.

Deine Fehler sind folgende:

In der ersten Zeile legst du das gesamte Statement in der Variablen $sql ab,

und hängst anschließend die geposteten Textfelder hintendran.


Im Teil . . . values( . . . usw.) schreibst du in den Klammern name,typ . . . usw.

als "reinen Text", was PHP nicht interpretieren kann.


Also entweder es heißt . . . values('$name','$typ', . . . usw.), dann müsstest du vorher

die geposteten Textfelder in den entspr. Variablen ablegen: $name=$_POST['name']; . . . usw..

Oder du übernimmst die geposteten Textfelder direkt. Dann lautet das Insert-Statement:

$sql="insert into tabelle(name,typ,os,ip,mac) values ('".$_POST['name']."','".$_POST['typ']."','".$_POST['os']."','".$_POST['ip']."','".$_POST['mac']."')";.

Gruß
Günni
Bitte warten ..
Mitglied: Fleckmen
06.03.2010 um 01:24 Uhr
Ich hab es jetzt!

$name = $_POST['name'];
$typ = $_POST['typ'];
...

$sql = "INSERT INTO computer (id, name, typ,...) VALUES('".$name."','".$typ."',...)";
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst Fehler 1064 you have an error in SQL syntax datenbankabfrage, Search and Replace (1)

Frage von Blackshirt zum Thema Datenbanken ...

Datenbanken
Firebird SQL Frage (2)

Frage von Argoadmin zum Thema Datenbanken ...

Datenbanken
gelöst SQL - nur Daten mit niedrigster ID ausgeben (1)

Frage von winscheil zum Thema Datenbanken ...

Festplatten, SSD, Raid
SQL Entwicklungsserver mit RAID1 oder RAID5 (6)

Frage von AndreasOC zum Thema Festplatten, SSD, Raid ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(6)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Hosting & Housing
gelöst Webserver bei WIX, aber DNS Server wo anders (9)

Frage von laster zum Thema Hosting & Housing ...

Microsoft Office
gelöst Excel Dateien durchsuchen und Teile extrahieren (7)

Frage von Beranavan zum Thema Microsoft Office ...

Router & Routing
Standortvernetzung von drei Standorten (6)

Frage von meinsm zum Thema Router & Routing ...