2013-02-16 5 views
1

Comment définissez-vous autoriser mySQL à incrémenter automatiquement une ligne dans mySQL lors de l'utilisation de php? J'ai défini la colonne link_id comme auto_increment à l'aide de phpMyAdmin mais je ne sais pas comment faire pour incrémenter automatiquement la ligne lors de l'utilisation de PDO.php mySQL pdo auto_increment clé primaire pour la ligne

$preparedStatement = $con->prepare('INSERT INTO link (link_id, category, link_desc, link_url) VALUES (:link_id, :category, :link_desc, :link_url)'); 
$preparedStatement-> execute(array(':link_id' => **AUTO INCREMENT Field in mySQL**, ':category' => $category,':link_desc' => $link_desc,':link_url' => $link_url)); 

Merci pour l'aide à l'avance!

Répondre

1

Vous n'avez rien de spécial à faire avec PHP, mais il y a plusieurs façons de le faire avec MySQL. L'une consiste à utiliser une valeur falsey ou null:

INSERT INTO link (<columns>) VALUES (null, category... 

Il suffit d'exclure le paramètre en PHP.

Vous pouvez également spécifier des colonnes à insérer, et si vous lâchez la touche auto_increment, il devient auto incrémentée:

INSERT INTO link (category, link_desc...) 
+0

Est-ce que spécifier null dans un champ auto_increment a un comportement défini? Je préfère le laisser hors de la question. Oh, ça ne fait rien, je viens de trouver que 'NULL' et' 0' sont également valables selon [docs] (http://dev.mysql.com/doc/refman/5.6/en/example-auto-increment.html). –

+0

Est-ce une solution AOP? Cela ne me semble pas, j'ai le même problème. Lorsque mysql insère automatiquement un incrément automatique, il semble que PDO ne le fasse pas. Avez-vous une solution, s'il vous plaît? – gavin

0

Vous pouvez remplir la colonne AUTO_INCREMENT à instruction INSERT avec une valeur ... MySQL remplacera automatiquement la valeur de la colonne AUTO_INCREMENT qui sont définies dans votre instruction et gèrent correctement la nouvelle valeur.

En mode console, il génère un avertissement si la valeur n'a pas été définie correctement, mais en PHP je pense qu'il sera ignoré.

Questions connexes