2017-04-17 2 views
0

ne peut pas faire fonctionner mysqli_insert_id .. L'ID est AUTO_INCREMENT mais ne fonctionne toujours pas.mysqli_insert_id retourne 0 en permanence

$query = "INSERT INTO categoriasdivisiones (titulo, orden, descripcion, id_familiadivisiones) VALUES ('$titulo','$orden', '$descripcion', '$id_familia');"; 

    mysqli_query($base, $query); 

    $ultimo_id = mysqli_insert_id($base); 

Ici j'appelle la base de données:

include('../../../php/config.php'); 

la route est ok.

Je sais que le problème dans le code est la fonction insert_id parce que j'ai une image où j'utilise ce chemin:

move_uploaded_file($foto['tmp_name'], '../../../imagenes/categoriadivisiones/catdivisiones_'.$ultimo_id.'.'.$extensionfoto.''); 

Et l'image est enregistrée en tant que = catdivisiones_0.png

espère que vous peut m'aider.

CREATE TABLE `categoriasdivisiones` (
    `id` int(11) NOT NULL, 
    `titulo` text NOT NULL, 
    `descripcion` text NOT NULL, 
    `imagen` text NOT NULL, 
    `orden` text NOT NULL, 
    `id_familiadivisiones` int(11) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
ALTER TABLE `categoriasdivisiones` 
    MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; 
+2

[Little Bobby] (http://bobby-tables.com/) dit *** [votre script est à risque pour les attaques par injection SQL.] (Http://stackoverflow.com/questions/60174/comment-peut-je-prévenir -sql-injection-in-php) *** En savoir plus sur les instructions [prepared] (http://en.wikipedia.org/wiki/Prepared_statement) pour [MySQLi] (http://php.net/manual/en/ mysqli.quickstart.prepared-statements.php). Même [échapper la chaîne] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) n'est pas sûr! –

+0

La fonction 'mysqli_insert_id()' retourne l'identifiant (généré avec 'AUTO_INCREMENT') utilisé dans la dernière requête. Utilisez-vous l'incrémentation automatique? –

+0

Oui je suis, "L'identifiant est A_I mais ne fonctionne toujours pas." –

Répondre

0

variable make sûr de $ base a des valeurs connection.after ('XX', 'XX', 'XX'XX') RETIRER. ';'

La requête résultante

$query = "INSERT INTO categoriasdivisiones (titulo, orden, descripcion, id_familiadivisiones) VALUES ('$titulo','$orden', '$descripcion', '$id_familia')"; 

mysqli_query($base, $query); 

$ultimo_id = mysqli_insert_id($base); 
0

Vous pouvez utiliser la présente à Créer id int auto_increment primary key ou vous pouvez sélectionner le dernier enregistrement par l'identifiant select id from your_table order by id DESC et stocker sur une variable et somme +1 comme celui-ci <?php $new_id = $id_from_database + 1 ?>

J'espère avoir aidé