Code:
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') VALUES ('testKey', 'testName', '22-11-12')' at line 1
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') VALUES ('testKey', 'testName', '22-11-12')' at line 1
Wozu die MySQL Daten in einzelne Variablen?Quote:
Diese Datei includen:
Das hier ist das eigentliche Script: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());
?>
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.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";
}
?>
<?php
include "config.php";
$VAR1 = mysql_real_escape_string($_GET['k']);
$VAR2 = mysql_real_escape_string($_GET['n']);
$VAR3 = mysql_real_escape_string($_GET['d']);
$writequery = mysql_query("INSERT INTO table ('key', 'name', 'date') VALUES ('".$VAR1."', '".$VAR2."', '".$VAR3."')") or die ("<b><i>MYSQL ERROR:</i></b> ".mysql_error());
?>
Quote:
Um die Sicherheit zu erhöhen werden jetzt die String escaped und um den Error zu bekommen ein "die" mit "mysql_error()" gesetzt.
Funktionieren tuts trotzdem nicht..
Es wird immer Leute geben, die an veraltender Technologie anhalten, auch wenn es in den meisten fällen nicht Empfehlenswert ist.Quote:
Ich verstehe nicht warum ihr noch alle bei euren mysql_* Funktionen gleibt, diese
werden demnächst als Veraltet erklärt steigt doch endlich alle auf mysqli oder PDO um.
Bin ebenfalls auf PDO umgestiegen vor paar Wochen und kann das nur jedem empfählen.Quote:
Ich verstehe nicht warum ihr noch alle bei euren mysql_* Funktionen gleibt, diese
werden demnächst als Veraltet erklärt steigt doch endlich alle auf mysqli oder PDO um.
$db = new PDO('mysql:host=localhost;dbname=<SOMEDB>', '<USERNAME>', 'PASSWORD'); // MySQL Connection
$stmt->prepare('INSERT INTO [table] (Key, Name, Date) VALUES (?,?,?)');
$stmt->execute(array($_GET['k'], $_GET['n'], $_GET['d']));
Wen dann schon so:Quote:
Bin ebenfalls auf PDO umgestiegen vor paar Wochen und kann das nur jedem empfählen.
Beispiel:
Hab das alles jetzt aus der Hand geschrieben vom iPad kann also Fehler enthalten.PHP Code:$db = new PDO('mysql:host=localhost;dbname=<SOMEDB>', '<USERNAME>', 'PASSWORD'); // MySQL Connection
$stmt->prepare('INSERT INTO [table] (Key, Name, Date) VALUES (?,?,?)');
$stmt->execute(array($_GET['k'], $_GET['n'], $_GET['d']));
<?php
try {
$db = new PDO('mysql:host='.$HOST, $USER, $PASS); // MySQL Connection
} catch(PDOException $e) {
die('Es konnte keine Verbindung zur Datenbank hergestellt werden:<br />'.$e->getMessage()); // Fehlerausgabe
}
$stmt->prepare('INSERT INTO [db].[table] (Key, Name, Date) VALUES (?,?,?)');
$stmt->execute(array($_GET['k'], $_GET['n'], $_GET['d']));
?>
Deine Try-Catch überprüft nichts, behandelt nichts, sondern gibt nur einen Fehler aus der so oder so ausgegeben werden würde - daher völlig nutzlos.Quote:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Der angegebene Host ist unbekannt.