Ich habe ein Formular, das eine Reihe von Feldern über die Details einer Kamera aufnimmt. Dies ist eine benutzerdefinierte Seite, die ich auf Joomla erstelle. Zuerst habe ich das Datenbankobjekt:mysql_real_escape_string nicht anwenden
$db = &JFactory::getDBO();
Prozess des Kameranamen in dem Formular eingetragen und in der DB:
$add_name = $_POST['camera_name'];
$query_insert_camera = "INSERT INTO #__cameras (camera_name, ... , user_id) VALUES ('".mysql_real_escape_string($add_name)."', ... ,'".$user->id."')";
$db->setQuery($query_insert_camera);
$db->query();
ich nur eine leere Zeichenfolge für Kameranamen bekommen. Wenn ich mysql_real_escape_string
herausnehmen, funktioniert es gut. Ich schätze mysql_real_escape_string
mag nicht die Art, wie ich eine Verbindung aufbaue ... denke ich.
Irgendwelche Ideen?
Erhalten Sie eine Warnung? Die Dokumentation gibt an, dass eine Warnung ausgegeben wird, wenn keine Verbindung gefunden werden kann. Ansonsten würde ich empfehlen, das Verbindungshandle in den Funktionsaufruf zu legen. – staticsan
Welche Art von Verbindung wird 'getDBO()' tatsächlich verwendet? Erzeugt man einen mit mysql_connect() oder mysqli() oder PDO? Welche API wird aufgerufen? mysql_real_escape_string() 'ist nur verfügbar, wenn die Verbindung mit mysql_connect()' hergestellt wurde. –
Warum benutzt du Joomlas getVar nicht? http://docs.joomla.org/Retrieving_and_Filtering_GET_and_POST_requests_with_JRequest::getVar – Shaz