Autor Zpráva
Akacko
Profil
zdravím,

zkouším mysqli, napsal jsem si třídu pro připojení k db a její obsluhu (dotazy).

Jelikož při některých událostech potřebuji vložit/upravit údaje v různých tabulkách v db (tabulky jsou spojeny primárním klíčem) jsem si pro to napsal funkci:

public function multiExecute($sql)
	{
		$this->printSql($sql);
				
		$ok = $this->mysqli->multi_query($sql);
				
		if ( $ok )
		{
			return TRUE;
		} else {
			$this->printError($this->mysqli->error);
			return FALSE;
		} 
       }


potom tuto funkcí používám takto:

$db->multiExecute("INSERT INTO user (user_login, user_email, user_password) VALUES (\"".$_POST["login"]."\",\"".$_POST["email"]."\",\"".$pswd."\");
INSERT INTO reg_data (user, registered) VALUES (\"".$db->insertId()."\",\"".returnDate()."\")");

$db->insertId() //metoda třídy vypadá takto:

public function insertId()
	{
		return $this->mysqli->insert_id;
	}



problém je, že se mi při druhém INSERTu do db neuloží hodnota, která by měla byt pod $db->insertId() ale 0.

Čím to je? Napadlo mě že insert_id u multi_query nefunguje. Pokud to je pravda, tak jak se dá obejit?
djlj
Profil
LAST_INSERT_ID(). A v tomhle případě bych spíš použil proceduru.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0