Echo van mysli insert

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees Mulder

Kees Mulder

12/08/2015 17:01:29
Quote Anchor link
Hoe kan ik een id echo-en van een mysqli insert?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  if ($insert_stmt = $mysqli->prepare("INSERT INTO members (username, email, password, salt) VALUES (?, ?, ?, ?)")) {
            $insert_stmt->bind_param('ssss', $username, $email, $password, $random_salt);
[
/code]
Gewijzigd op 12/08/2015 17:04:41 door Kees Mulder
 
PHP hulp

PHP hulp

18/10/2018 01:55:29
 
Richard Snijders

Richard Snijders

12/08/2015 17:03:45
 
Kees Mulder

Kees Mulder

12/08/2015 17:32:01
Quote Anchor link
Heb ik ook naar gekeken maar kom er niet echt uit. Ik had dit nog gevonden maar werkt ook niet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
            $user_id
= $mysqli->insert_id;
[
/code]
 
- Ariën -
Beheerder

- Ariën -

12/08/2015 17:36:19
Quote Anchor link
Heb je al ge-echo'ed?
 
Kees Mulder

Kees Mulder

12/08/2015 17:42:49
Quote Anchor link
Dan krijg ik '0'


Toevoeging op 12/08/2015 17:49:53:

Als ik het volgende doe geeft hij wel het id aan

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
echo 'New record created successfully. Last inserted ID is: '.$mysqli->insert_id;
?>



Maar doe ik het volgende dan geeft hij '0' aan


<?php
$user_id
= $mysqli->insert_id;

echo $user_id;
?>

 
- Ariën -
Beheerder

- Ariën -

12/08/2015 18:22:06
Quote Anchor link
Variabelen overschrijven is niet nuttig. Gewoon direct echo'en.
 
Kees Mulder

Kees Mulder

12/08/2015 20:21:18
Quote Anchor link
- Aar - op 12/08/2015 18:22:06:
Variabelen overschrijven is niet nuttig. Gewoon direct echo'en.


Maar hoe doe ik dat dan als ik meerdere tabellen heb en die id's wil invoeren...
 
Ben van Velzen

Ben van Velzen

12/08/2015 20:27:08
Quote Anchor link
Kees Mulder op 12/08/2015 17:42:49:
Dan krijg ik '0'


Toevoeging op 12/08/2015 17:49:53:

Als ik het volgende doe geeft hij wel het id aan

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo 'New record created successfully. Last inserted ID is: '.$mysqli->insert_id;
?>


Maar doe ik het volgende dan geeft hij '0' aan

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$user_id
= $mysqli->insert_id;

echo $user_id;
?>



Als de eerste variant werkt werkt de tweede ook. Dat gaat dus ergens anders mis.
Gewijzigd op 12/08/2015 20:27:50 door Ben van Velzen
 
Thomas van den Heuvel

Thomas van den Heuvel

12/08/2015 21:09:48
Quote Anchor link
Het fragment is onvolledig of gewoon fout. Je voert de query namelijk nergens uit, ik zou dan dus eigenlijk helemaal geen waarden terug verwachten.
 
Wouter J

Wouter J

12/08/2015 22:13:50
Quote Anchor link
In de code die je hier laat zien staat alleen een prepare statement. Een prepare (vertaald: voorbereiden) voert de query zelf niet uit. Dit zul je moeten doen met $insert_stmt->execute().

Als de query is uitgevoerd kun je het laatst toegevoegde ID ophalen met $mysqli->insert_id.
 
Thomas van den Heuvel

Thomas van den Heuvel

12/08/2015 22:38:23
Quote Anchor link
Wouter heeft wat duidelijker verwoord wat er precies misgaat.

Tenzij je een query meerdere keren uitvoert zie ik eerlijk gezegd niet het nut van een prepare + execute.

Indien je een query maar 1x uitvoert via een prepare + execute doe je (bijna) het dubbele werk...

Daarnaast zijn prepared statement in MySQLi nogal ruk :).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.