mysql_insert_id() problem

So nochmal die beiden Abfragen:

PHP:
$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";  
									$last_id = mysql_insert_id($log_data); #nicht sicher ob  $log_data oder $sql


$pro_data = 
"INSERT 
		INTO 
		`ow_user_data` 	
			(`userid`, `vorname`, `nachname`, `geb_tag`, `geb_mon`, `geb_jahr`, `sex`) 
									
			VALUES 
									
		      ('$last_id', '$vorname', '$nachname, '$geb_tag', '$geb_mon', '$geb_jahr', '$sex')";
									
var_dump($pro_data);

$pro_data2 = mysql_query($pro_data);
                                    mysql_query($pro_data2) or die(mysql_error());
                                    echo mysql_affected_rows();
                                    echo "{$pro_data2}\n";

habe es nach deinem Bild übernommen die letzte ausgabe ist die selbe wie zuvor denke er startet die 2te eintragung gar nicht erst und unterbricht direkt nach der ersten da diese auch eingetragen wird und die 2te nicht mehr.
 
Zuletzt bearbeitet:
item: Das $log_data hat in mysql_insert_id() nix verloren. Dort käme die Verbindung-Kennung rein. Aber du arbeitest nur mit einer Verbindung, ergo kannst du es leer lassen

item: Was soll der Befehl 'mysql_query($log_data)' bewirken? $log_data ist True oder False, je nachdem der Insert von 'mysql_query($sql);' gelungen ist oder nicht. Ein True oder False ist kein SQL-Query und darum nicht ausführbar.

Was du willst sieht eher so aus
PHP:
//Falsch (deines)
$log_data = mysql_query($sql);
mysql_query($log_data) or die(mysql_error());
echo mysql_affected_rows();
echo "{$log_data}\n";  
$last_id = mysql_insert_id($log_data);

//richtig
mysql_query($sql)  or die(mysql_error());
$last_id = mysql_insert_id();
 
Wow super, dadurch erreiche ich nun die 2te abfrage var_dump liefert nun auch die richtigen ergebnisse auch mysql_insert_id() wird mir richtig angegeben.

Doch der eintrag in der DB bleibt aus.

PHP:
string(541) "
INSERT INTO `ow_login` (`username`, `email`, `passwort`, `confirmcode`, `ip`, `sicherheit`, `antwort`) VALUES ('JuSeCo', 'verino@live.de', '057958778620777b461354ffa987651c357f3f27a1be21806bb5a5147c1e05f3', '503bc91a9286e795e4942e7e51d8ad3a', '', 'Mein Geburtsort', 'Brühl')" 


string(244) "
INSERT INTO 
  `ow_user_data` 
(
`userid`, 
`vorname`, 
`nachname`, 
`geb_tag`, 
`geb_mon`, 
`geb_jahr`, 
`sex`
) 
VALUES 
(
'28', 
'Daniel',
 'Kunert, 
'20',
 '8.', 
'1985',
 'männlich'
)
"

sql tabelle:

PHP:
-- phpMyAdmin SQL Dump
-- version 3.4.5
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 24. Jan 2012 um 17:42
-- 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_user_data`
--

CREATE TABLE IF NOT EXISTS `ow_user_data` (
  `id` int(30) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `userid` varchar(30) NOT NULL,
  `vorname` varchar(20) NOT NULL,
  `nachname` varchar(20) NOT NULL,
  `geb_tag` varchar(2) NOT NULL,
  `geb_mon` varchar(10) NOT NULL,
  `geb_jahr` varchar(4) NOT NULL,
  `sex` varchar(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

/*!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 */;

code:

PHP:
$pro_data = "INSERT 
								INTO 
									`ow_user_data` 	
									(`userid`, `vorname`, `nachname`, `geb_tag`, `geb_mon`, `geb_jahr`, `sex`) 
									
									VALUES 
									
									('$last_id', '$vorname', '$nachname, '$geb_tag', '$geb_mon', '$geb_jahr', '$sex')";
								
var_dump($pro_data);

$pro_data2 = mysql_query($pro_data);
                                    mysql_query($pro_data) or die(mysql_error());
                                    echo mysql_affected_rows();
                                    echo "{$pro_data}\n";

So Problem gelöst.


Ich danke recht Herzlich für die Tatkräftige Unterstützung
 
Zuletzt bearbeitet von einem Moderator:
Zurück