PDO een AUTO_INCREMENT wijzigen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Chris PHP

Chris PHP

14/01/2014 17:19:00
Quote Anchor link
Ola,

Ik ben momenteel bezig met een script waar ik middels PDO de AUTO_INCREMENT moet wijzigen, nu heb ik het volgende al geprobeerd zonder resultaat.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$conn
->exec("ALTER TABLE tabel_naam AUTO_INCREMENT = 114001");
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$test
= $conn->prepare("ALTER TABLE tabel_naam AUTO_INCREMENT = 114001");
$test->execute();
?>


Iemand enig idee wat de oorzaak kan zijn? En ja ik heb uiteraard een AUTO_INCREMENT veld ;-)
 
PHP hulp

PHP hulp

23/11/2024 23:57:46
 
Erwin H

Erwin H

14/01/2014 17:22:03
Quote Anchor link
Heeft de gebruiker de juiste rechten op de tabel (alter, create en insert rechten zijn nodig)?
 
Chris PHP

Chris PHP

14/01/2014 17:23:10
Quote Anchor link
@Erwin,
Yep ben even met het root account gaan testen en ook dat mocht geen resultaat opleveren.
 
Erwin H

Erwin H

14/01/2014 17:30:37
Quote Anchor link
En als je het direct doet (via de command line bijvoorbeeld) dan lukt het wel? Weet je ook zeker dat de bepaalde waarde nog kan, dat er dus niet al een hogere waarde in gebruik is? In dat geval werkt het ook niet namelijk.
 
Chris PHP

Chris PHP

14/01/2014 17:35:57
Quote Anchor link
@Erwin,

Vanuit Navicat (DB management tool) werkt het wel als ik de query daar draai, echter kon ik het niet recpliceren door het nogmaals te doen.

Ja de originele waarde was 113001 ik wil hem wijzigen naar 114001 en daarna wellicht naar 115001 enzovoorts
Gewijzigd op 14/01/2014 17:36:18 door Chris PHP
 
Erwin H

Erwin H

14/01/2014 17:43:40
Quote Anchor link
Wat is het resultaat van de query. Foutmeldingen eventueel?
 
Chris PHP

Chris PHP

14/01/2014 18:35:51
Quote Anchor link
Geen foutmelding, dit is het resultaat van de query

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
[SQL] ALTER TABLE test_tabel AUTO_INCREMENT = 1140001;
Affected rows: 7
Time: 0.022ms
 
Erwin H

Erwin H

14/01/2014 18:40:01
Quote Anchor link
Dat is het resultaat als je het uitvoert in PDO? Dan is het dus gelukt, hoe zie je dat het niet gelukt is?

Overigens, heb je er nu een 0 meer staan dan eerder. Ik neem aan dat dat geen oorzaak van wat dan ook kan zijn, maar je weet nooit....
 
Chris PHP

Chris PHP

14/01/2014 20:34:41
Quote Anchor link
@Erwin,

Nee dit is het resultaat wanneer ik de query uitvoer middels Navicat. Echter bij de eigenschappen van de tabel zie ik dat de auto increment waarde nog steeds op 113001 staat en dus niet gewijzigd is.

Wanneer ik een nieuw record toevoeg hoogt hij hem ook op naar 113002 en niet 1140001. Idd die extra 0 mag het probleem niet zijn, er staat geen limitatie op het aantal integers dat is toegestaan voor dat veld.

Toevoeging op 14/01/2014 20:53:47:

UPDATE:

Ik heb nu het volgende geprobeerd, en komt terug met een Fatal error
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
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
try {
$test = $conn->prepare("ALTER TABLE test_tabel AUTO_INCREMENT = :value");
$test->bindParam (':value', '1140001', PDO::PARAM_STR, 5);
$test->execute();
}
catch (PDOException $e) {
        echo $e->getMessage();
}


//Deze heb ik ook geprobeerd
try {
$test = $conn->prepare("ALTER TABLE test_tabel AUTO_INCREMENT = :value");
$test->bindParam (':value', 1140001, PDO::PARAM_INT);
$test->execute();
}
catch (PDOException $e) {
        echo $e->getMessage();
}


//En deze ook
try {
$test = $conn->prepare("ALTER TABLE test_tabel AUTO_INCREMENT = :value");
$test->bindParam (':value', 1140001);
$test->execute();
}
catch (PDOException $e) {
        echo $e->getMessage();
}

?>


Alle drie komen met de volgende Fatal error terug
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Fatal error: Cannot pass parameter 2 by reference in C:\Webserver\Apache\htdocs\TestOpzet\test.php on line 33


UPDATE: Fatal error is gefixed, mijn eigen domme fout uiteraard! Parameter 2 moet een variabel zijn en geen waarde!
Echter krijg ik nu GEEN foutmelding meer maar de AUTO_INCREMENT wordt nog steeds niet aangepast :S

UPDATE: Het is opgelost, variabel toegevoegd aan bind_param en de AUTO_INCREMENT wordt aangepast.

@Erwin thnx voor het meedenken!
Gewijzigd op 14/01/2014 21:19:07 door Chris PHP
 



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.