dummer fehler ich finds nicht :/

folio

Erfahrenes Mitglied
Hi,

habe folgendes MySQL-Query:

Code:
  $theque = tep_db_query("UPDATE ticket_ticket SET ticket_ebayname=" . $_GET[ebayname] . " WHERE ticket_id=" . $_GET[nummere]);

als Fehler kommt jetzt zurück:
Code:
1054 - Unknown column 'rofl' in 'field list'

UPDATE ticket_ticket SET ticket_ebayname=rofl WHERE ticket_id=9

[TEP STOP]

Das Feld ticket_ebayname existiert aber genauso wie die Tabelle ticket_ticket.
 
Zeichenketten müssen immer mit Anführungszeichen ausgezeichnet werden, sonst werden sie z.B. als Bezeichner (in diesem Fall als Feldname) oder auch als Schlüsselwort interpretiert.
 
Hi
Versuch mal die Zeichenketten in ' einzuschließen
PHP:
$theque = tep_db_query("UPDATE ticket_ticket SET ticket_ebayname='" . $_GET[ebayname] . "' WHERE ticket_id='" . $_GET[nummere])."'";
 
Hi

probiers mal so:

PHP:
$theque = tep_db_query("UPDATE ticket_ticket SET ticket_ebayname=".$_GET['ebayname']." WHERE ticket_id=".$_GET['nummere']."");
 
@maga147:
Dann hat man das gleiche Problem wieder.

Kombiniere deine Lösung mit der von birnkammer und es ist (fast) perfekt.
PHP:
$theque = tep_db_query("UPDATE ticket_ticket SET ticket_ebayname='" . $_GET['ebayname'] . "' WHERE ticket_id='" . $_GET['nummere'])."'";

Bedenke aber, dass man nie Benutzerdaten einfach so in Verbindung mit einer DB verwenden sollte. umschließe die GETs noch mit mysql_real_escape_string();
 
fanste hat gesagt.:
Bedenke aber, dass man nie Benutzerdaten einfach so in Verbindung mit einer DB verwenden sollte. umschließe die GETs noch mit mysql_real_escape_string();
Man sollte mysql_real_escape_string() aber nur nutzen wenn die Magic Quotes in der php.ini deaktiviert sind. Ansonsten hat man einen doppelt "escapten" String, was ja auch Quatsch ist.
Hier eine kleine Funktion:
PHP:
function mysql_escape($text)
{
	if (!get_magic_quotes_gpc())
		{
			$text=mysql_real_escape_string($text);
		}
	return $text;
}
 
Das Problem ist nur, dass man in der Regel mit den Einstellungen des Hosters leben muss und somit nicht mal eben die Magic Quotes deaktivieren kann.
Auf php.net hab ich aber ein schoenes Beispiel gesehen. Das sah ungefaehr so aus:
PHP:
function mysql_escape($text)
{
 if (get_magic_quotes_gpc())
 {
  $text=stripslashes($text);
 }
 return mysql_real_escape_string($text);
}
Allgemein find ich eine Sammlung mit solchen "Was-waere-wenn-Funktionen" zum Teil garnicht unpraktisch.
 
Ich habe auch ein schönes Beispiel:
PHP:
<?php

	set_magic_quotes_runtime(false);

	if( get_magic_quotes_gpc() || ini_get('magic_quotes_sybase') ) {
		$_GET     = magic_quotes_strip($_GET);
		$_POST    = magic_quotes_strip($_POST);
		$_COOKIE  = magic_quotes_strip($_COOKIE);
		$_REQUEST = array_merge($_GET, $_POST, $_COOKIE);
		$_FILES   = magic_quotes_strip($_FILES);
		$_ENV     = magic_quotes_strip($_ENV);
		$_SERVER  = magic_quotes_strip($_SERVER);
	}

	function magic_quotes_strip( $mixed ) {
		if( is_array($mixed) ) {
			return array_map('magic_quotes_strip', $mixed);
		}
		return stripslashes($mixed);
	}

?>
Damit werden die Magic Quotes automatisch entfernt.
 
Zurück