Autor | Zpráva | ||
---|---|---|---|
PavV Profil |
Ahoj, lze sloučit do jednoho dotazu insert a select? Konkréntně:
$sql = "INSERT INTO users VALUES(0,'".$this->data["jmeno"]."','".$this->data["user"]."',SHA1('".$this->data["pass"]."'),'".$this->data["aktivni"]."','');"; $sql.= "SET @id = LAST_INSERT_ID();"; if( isset($this->data["farn"])){ foreach ($this->data["farn"] as &$value) { $sql.= "INSERT INTO adminis VALUES (@id,".$value.");"; } } $ip = gethostbyname($_SERVER['REMOTE_ADDR']); $sql.= "INSERT gdpr VALUES ('ducho',NOW(),@id,'$ip',".$_SESSION['user_id'].",'vloženo');"; $sql.= "SELECT MAX(id) AS id FROM users;"; $result= self::$connect->query($sql); $result->fetchAll(PDO::FETCH_ASSOC); foreach($result as $row){ $id= $row["id"]; } Když insert provedu v jednom dotazu a select v dalším, je vše ok. Pokud to sloučím hodí to Warning: Invalid argument supplied for foreach() A nebo lze v php získat z prvního dotazu @id? Dik |
||
Tomášeek Profil |
#2 · Zasláno: 15. 3. 2019, 17:24:26
PavV:
Ano, pravé vložené id jde získat. Hledej insert_id. Navíc, v tom tvém druhem dotazu tahas jednu hodnotu, foreach je zbytečný. |
||
Časová prodleva: 6 let
|
0