[?]PHP in MySQL schreiben

02/12/2013 18:54 coladose#1
Hallo und schönen Abend zusammen!
Da ich bis jetzt ohne Erfolg versuche Daten per PHP in meine MySQL DB zu schreiben, dachte ich wende ich mich doch an euch. Einer wird mir doch bestimmt helfen können.

Mein Script:
PHP Code:
<?php

$S_conn 
mysql_connect("localhost""[USER]""[PW]") or die ("<b>Failed</b> to connect to <i>MySQL server</i><br>");
$D_conn mysql_select_db("[DB]") or die ("<b>Failed</b> to connect to <i>Database</i><br>");

$in1 $_GET['k'];
$in2 $_GET['n'];
$in3 $_GET['d'];

$mysql_command "INSERT INTO [table] (id, key, name, date) VALUES (1,'".$in1."','".$in2."','".$in3."')";
$mysql_in mysql_query($mysql_command) or die ("<b>Failed</b> to write <i>data</i> !");

?>
Die Datenbank sowie die Tabelle bestehen, doch er gibt mir immer den Schreibfehler.

Hoffe es kann mir jemand Helfen!
02/12/2013 19:00 Fehlgeschlagen#2
Schon mal was von PHP Error logs gehört ? für normal bei IIS wird das unter

C:\Windows\Temp gespeichert.. einfach mal durchlesen und schon wird dir die lampe über deinem kopf aufgehen...
02/12/2013 19:02 coladose#3
Das Script läuft nur leider nicht lokal (windows), sondern auf einem externen Webspace. Also habe leider keinen Zugriff auf Errorlogs.
02/12/2013 19:08 MrPuschel#4
Lass dir anstatt der eigenen Fehlermeldung den Query ausgeben den du dir dort zusammenbaust und , wenn möglich, versuche diesen selbst per phpmyadmin auszuführen. Ansonsten poste ihn hier.
02/12/2013 19:16 Synatex#5
Es gibt auch die Möglichkeit dem or die() die Funktion mysql_error() zu nutzen, wodurch du die letzte von MySQL geworfene Fehlermeldung zurückkriegst die dementsprechend dann in dem Query liegen muss.

PHP Code:
mysql_query() or die ( mysql_error() ); 
02/12/2013 19:18 coladose#6
Code:
INSERT INTO [table] (id, key, name, date) VALUES (1,'5408236543096','SUHDIAS','32423423')
(Das in den eckigen Klammern ist natürlich als Ersatz für die echten Werte)

Das ist der Query...


€:

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 'key,name,date) [...]

Das ist der Error, dieser bedeutet, dass was im Syntax nicht stimmt, doch ist der Syntax für ein Einfügen "INSERT INTO tbl_name () VALUES()"

Ich verstehe nicht, was bei mir falsch ist... :<
02/12/2013 21:50 Project Rivalry#7
ich bin mir nicht sicher aber hast du die zahlen auch in einem var char oder text spalten typ?

oder ein int... wen ja lass die '' weg
02/12/2013 22:05 PseudoPsycho#8
Hast du ID auf Auto-Increment? Falls ja, entfern' die Stelle aus dem Query. ;)

Desweiteren könnte es sein, dass irgendwas davon reserviert ist. Versuch' lieber:
PHP Code:
INSERT INTO `[table]` (`id`, `key`, `name`, `date`) VALUES (1,'5408236543096','SUHDIAS','32423423'
02/12/2013 23:33 Synatex#9
Ich glaube MySQL kann nichts mit [ ] im Tabellennamen anfangen. Das ist MSSQL spezfiisch. Bin mir da aber auch nicht zu 100% sicher.
02/13/2013 09:09 coladose#10
Quote:
Originally Posted by PseudoPsycho View Post
Hast du ID auf Auto-Increment? Falls ja, entfern' die Stelle aus dem Query. ;)

Desweiteren könnte es sein, dass irgendwas davon reserviert ist. Versuch' lieber:
PHP Code:
INSERT INTO `[table]` (`id`, `key`, `name`, `date`) VALUES (1,'5408236543096','SUHDIAS','32423423'
Der Aufbau der Tabelle ist folgendermaßen:

INT id; TEXT key; TEXT name; TEXT date und die id ist nicht mit autoincrement gesetzt um alles einfach wie möglich zu halten.

Quote:
Originally Posted by Synatex View Post
Ich glaube MySQL kann nichts mit [ ] im Tabellennamen anfangen. Das ist MSSQL spezfiisch. Bin mir da aber auch nicht zu 100% sicher.
Danke für deinen Tipp, doch wie ich schon sagte ist das "[table]" lediglich ein Platzhalter. Der Name der Tabelle ist natürlich anders.

:/ nichts desto mehr hänge ich immer noch :<
02/13/2013 09:24 Fehlgeschlagen#11
Das schon mal versucht ?
PHP Code:
INSERT INTO `table` (`id`, `key`, `name`, `date`) VALUES (`1`,`5408236543096`,`SUHDIAS`,`32423423`) 
iknow MySQL ist immer so ein dreck da sie keine zeichen wie

" [ " oder " ' " zulässt da schauts bei SQLSRV schon besser aus in der art:

PHP Code:
INSERT INTO [dbo].[WTF] ('WTF1''WTF2'VALUES ('Zurück''Gehen'); 
02/13/2013 09:32 kissein#12
mein tipp:
id ist autoincrement
02/13/2013 11:42 Hupfi10#13
Diese Datei includen:
PHP Code:
<?php
$dbhost 
"localhost"// this will ususally be 'localhost', but can sometimes differ
$dbname "DATENBANKNAMEHIER"// the name of the database that you are going to use for this project
$dbuser "DATENBANKUSERHIER"// the username that you created, or were given, to access your database
$dbpass "PASSWORT HIER"// the password that you created, or were given, to access your database
mysql_connect($dbhost$dbuser$dbpass) or die("MYSQL ERROR" mysql_error());
mysql_select_db($dbname) or die("MYSQL ERROR" mysql_error());
?>
Das hier ist das eigentliche Script:
PHP Code:
<?php
include "NAMEDESOBIGENSCRIPTS.PHP";

$writequery mysql_query("INSERT INTO TABELNAME ('key', 'name', 'date') VALUES ('".$VAR1."', '".$VAR2."', '".$VAR3."')");

if (!empty(
$writequery))
{
 echo 
"INSERT OK";
}
else
{
 echo 
"INSERT NOK";
}
?>
Und die Spalte ID würde ich auf AI stellen, da das wesentlich einfacher zu handeln ist, du brauchst sowieso entweder einen Unique Wert oder einen Schlüssel, welchen ich dann einfach auf die ID Legen würde.
02/13/2013 17:49 coladose#14
Danke Hupfi, aber er gibt "INSERT NOK" aus, obwohl alle Daten stimmen und ich id als Schlüssel gesetzt und auf AI gesetzt habe

Var1-3 werden natürlich bestimmt über get..
02/13/2013 18:23 beefm4ker#15
Quote:
Originally Posted by coladose View Post
Danke Hupfi, aber er gibt "INSERT NOK" aus, obwohl alle Daten stimmen und ich id als Schlüssel gesetzt und auf AI gesetzt habe

Var1-3 werden natürlich bestimmt über get..
Welcher mysql_error wird denn gegeben?