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, 5995 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

Mit freundlichen Grüßen 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Windows 8
gelöst Active Directory Default User.v2 Profile - Windows 8.1 Apps Error (4)

Frage von adm2015 zum Thema Windows 8 ...

Windows Server
gelöst SQL-Server Datenbanksicherung inkl. Benutzerberechtigungen dafür? (4)

Frage von 1410640014 zum Thema Windows Server ...

Windows 10
gelöst Installationsproblem sql server 2014 auf windos 10 rechner (23)

Frage von jensgebken zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...