mysql_insert_id() problem

Ja ist mir bewusst das du das script möchtest, dann sag mir noch bitte wie ich an die ausgabe kommen, wenn das script vorzeitig unterbrochen wird da es die email adresse als nicht gültig anerkennt.

Ich erhalte auf diesem wege bisher keine ausgabe und wie es vorher zu einem eintrag in der db kommen konnte ist nach wie vor ein Rätsel für mich für das ich absolut keine logische erklärung finde.

Die Fehlerhaft email ist die letzte Prüfung im script bevor es zur Datenspeicherung kommt und dann kann ich auch sämtliche Dinge ausgeben lassen wenn ich soweit bin.

So auch das habe ich und um auf deine sache zurück zu kommen. Die einzige ausgabe die ich nun erhalte ist:

Query was empty

eingebaut habe ich es wie folgt:


PHP:
$log_data = mysql_query("INSERT 
								INTO 
									ow_login 	
									(username, email, passwort, confirmcode, ip, sicherheit, antwort) 
									
									VALUES 
									
									('$username', '$email, '$passwort, '$confirm_code, '$user_ip, '$sicherheitsfrage', '$antwort')");
									mysql_query($log_data) or die(mysql_error());
									echo mysql_affected_rows();
									echo "{$log_data}\n";
 
Zuletzt bearbeitet von einem Moderator:
Du hast mein verlinktes Tutorial nicht gelesen.
Also, ich kaus dir trotzdem nochmals vor.
PHP:
//Hier das SQL in eine Variable schreiben
$sql"INSERT 
                                INTO 
                                    ow_login     
                                    (username, email, passwort, confirmcode, ip, sicherheit, antwort) 
                                    
                                    VALUES 
                                    
                                    ('$username', '$email, '$passwort, '$confirm_code, '$user_ip, '$sicherheitsfrage', '$antwort')";
//Hier das SQL-Script zur weiteren Fehleranalyse ausgeben
var_dump($sql);

//und dann kannst du es immer noch ausführen. Aber eigentlich ist das vorerst unwichtig
$log_data = mysql_query($sql);
                                    mysql_query($log_data) or die(mysql_error());
                                    echo mysql_affected_rows();
                                    echo "{$log_data}\n";

Ein Fehler seh ich bereits. Den solltest du aber auch sehen wenn du das generierte SQL mal studierst. (Ist sogar fast der gleiche Fehler wie im Tutorial abgearbeitet wird und mit dem Vorgehen vom Tutorial problemlos gefunden werden kann).
 
Danke,

habe mal $sql"INSERT in $sql = "INSERT geändert nun erhalte ich folgendes:

string(521) "INSERT INTO ow_login (username, email, passwort, confirmcode, ip, sicherheit, antwort) VALUES ('JuSeCo', 'my@mail.de, '057958778620777b461354ffa987651c357f3f27a1be21806bb5a5147c1e05f3, '27bcd2963fff5a9c349ab3fa6500c1d5, ', 'Mein Geburtsort', 'Brühl')" Query was empty

lg

habe noch bei der user_ip ein ' eingefügt änderung ist nun folgendermassen:

string(522) "INSERT INTO ow_login (username, email, passwort, confirmcode, ip, sicherheit, antwort) VALUES ('JuSeCo', 'my@mail.de, '057958778620777b461354ffa987651c357f3f27a1be21806bb5a5147c1e05f3, '4bbd4264d6b6a2f63a24733015c3e18f, '', 'Mein Geburtsort', 'Brühl')" Query was empty
 
Zuletzt bearbeitet von einem Moderator:
Und wenn du das ganze mal hier im Forum mal in SQL-Tags setzt und noch formatierst, sollte dir etwas auffallen (sogar 4 Dinge sollten dir auffallen)
SQL:
INSERT INTO 
	ow_login 
(
	username, 
	email, 
	passwort, 
	confirmcode, 
	ip, 
	sicherheit, 
	antwort
)
VALUES
(
	'JuSeCo', 
	'my@mail.de, 
	'057958778620777b461354ffa987651c357f3f27a1be21806bb5a5147c1e05f3, 
	'27bcd2963fff5a9c349ab3fa6500c1d5,
	',
	'Mein Geburtsort',
	'Brühl'
)
 
Zuletzt bearbeitet von einem Moderator:
Es waren 4 Dinge insgesammt, fehlercode hat sich nun geändert:

SQL:
string(525) "INSERT INTO ow_login (username, email, passwort, confirmcode, ip, sicherheit, antwort) VALUES ('JuSeCo', 'verino@live.de', '057958778620777b461354ffa987651c357f3f27a1be21806bb5a5147c1e05f3', 'ef5fca10c4f40e3ca6bd574ea21103a0', '', 'Mein Geburtsort', 'Brühl')" 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 '1' at line 1
 
Zuletzt bearbeitet von einem Moderator:
Mal kurz ein Zitat aus meiner Signatur
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
Glaub mir. Es lohnt sich kurz ein SQL zu formatieren wenn man Fehler darin sucht. Du kannst sogar den SQL-Code formiert in PHP schreiben. Diese 1Zeiler mit hunderten (525 in deinem Fall) von Zeichen sind schlichtwegs nicht lesbar.
Auch die Fehlermeldung von MySQL kommt etwas besser wenn du verschiedene Zeilen hast. Es gibt schliesslich einen Anhaltspunkt auf welcher Zeile der Fehler sein könnte. Das ist bei dir die Zeile 1 weil du nur eine Zeile hast.

Dann poste mal das ganze formatiert in SQL-Tags ins Forum. Ich habs dir ja vorgemacht wie es aussehen könnte.

Und dann das ganze mal mit phpMyAdmin testen um zu sehen was passiert. Ggf ist ein falscher Spaltenname dabei, ev. ein zu langer Wert etc.)

Nachtrag:
Poste ansonsten mal dein create-Table-Script. Dann können wir mal testen..
 
PHP:
string(541) 

"INSERT INTO 
          `ow_login` 
(
`username`, 
`email`, 
`passwort`, 
`confirmcode`, 
`ip`, 
`sicherheit`, 
`antwort`
) 

VALUES
 (
'JuSeCo', 
'verino@live.de', '057958778620777b461354ffa987651c357f3f27a1be21806bb5a5147c1e05f3', '8e20fdc66ddea62b8cb80b2165c83da8', 
'', 
'Mein Geburtsort', 
'Brühl'
)" 

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 '1' at line 1

Das mit dem Ordentlicher gebe ich gerne zu habe die anderen Dinge ja auch formatiert.

Wollte hier nur die ausgabe 1 zu 1 wiedergeben.

Anbei bemerkt, er trägt die Daten in die DB ein zumindest in die erste.
 
PHP:
-- phpMyAdmin SQL Dump
-- version 3.4.5
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 24. Jan 2012 um 16:54
-- Server Version: 5.5.16
-- PHP-Version: 5.3.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Datenbank: `ow`
--

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `ow_login`
--

CREATE TABLE IF NOT EXISTS `ow_login` (
  `id` int(30) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `username` varchar(15) NOT NULL,
  `vorname` varchar(30) NOT NULL,
  `nachname` varchar(30) NOT NULL,
  `email` varchar(50) NOT NULL,
  `passwort` varchar(100) NOT NULL,
  `passwort2` varchar(100) NOT NULL,
  `status` varchar(2) NOT NULL DEFAULT '2',
  `confirmcode` varchar(56) NOT NULL,
  `sicherheit` varchar(50) NOT NULL,
  `antwort` varchar(50) NOT NULL,
  `register` datetime NOT NULL,
  `last_login` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `session_id` varchar(56) NOT NULL,
  `ip` bigint(20) NOT NULL,
  `ip_pw_change` varchar(15) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 
Komisch. Mit dieser Tabelle geht mein test problemlos
PHP:
include_once('connect.php');
$sql = "
INSERT INTO 
          `ow_login` 
(
`username`, 
`email`, 
`passwort`, 
`confirmcode`, 
`ip`, 
`sicherheit`, 
`antwort`
) 

VALUES
 (
'JuSeCo', 
'verino@live.de', 
'057958778620777b461354ffa987651c357f3f27a1be21806bb5a5147c1e05f3', 
'8e20fdc66ddea62b8cb80b2165c83da8', 
'NA', 
'Mein Geburtsort', 
'Brühl' 
)
";
mysql_query($sql) or die(mysql_error());
echo mysql_insert_id();

Ist das neue Problem ev. im 2ten SQL? Wenn ja, kannst du das genau gleich testen.
 
Zurück