<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Ce qui suit est la préface qui n'a rien à voir avec le contenu de l'article PHP Exemple de code</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Opérations de base de données prête à démarrer...\n"</span></span><span>;
</span><span><span class="hljs-variable">$servername</span></span><span> = </span><span><span class="hljs-string">"localhost"</span></span><span>;
</span><span><span class="hljs-variable">$username</span></span><span> = </span><span><span class="hljs-string">"root"</span></span><span>;
</span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">""</span></span><span>;
</span><span><span class="hljs-variable">$dbname</span></span><span> = </span><span><span class="hljs-string">"testdb"</span></span><span>;
</span><span><span class="hljs-comment">// Créer une connexion</span></span><span>
</span><span><span class="hljs-variable">$conn</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-variable">$servername</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$dbname</span></span><span>);
</span><span><span class="hljs-comment">// Vérifiez la connexion</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$conn</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Échec de la connexion: "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>->connect_error);
}
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/**
* Titre d'article: Comment passer mysql_insert_id Obtenez l'auto-augmentation des données inséréesID?
*
* Utilisé MySQL Lorsque la base de données insère des données,Souvent, vous devez obtenir l'auto-incrémentation du dossier qui vient d'insérer ID(AUTO_INCREMENT)。
* exister PHP milieu,Peut être passé `mysql_insert_id()` ou MySQLi、PDO Des méthodes similaires sont fournies pour mettre en œuvre。
*
* 1. utiliser MySQLi Étendu
*
* passer MySQLi Étendu执行插入操作后,可以utiliser `$conn->insert_id` Se faire auto-augmenter ID。
*/</span>
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"INSERT INTO users (username, email) VALUES ('Alice', '[email protected]')"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$conn</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>) === </span><span><span class="hljs-literal">TRUE</span></span><span>) {
</span><span><span class="hljs-variable">$last_id</span></span><span> = </span><span><span class="hljs-variable">$conn</span></span><span>->insert_id;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Nouvelle insertion d'enregistrement avec succès,ID pour: "</span></span><span> . </span><span><span class="hljs-variable">$last_id</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Insérer une erreur: "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>->error;
}
<span class="hljs-comment">/**
* 2. utiliser PDO Étendu
*
* PDO Fourni `lastInsertId()` Méthode pour obtenir l'auto-inférences de la dernière opération d'insertion ID。
*/</span>
</span><span><span class="hljs-keyword">try</span></span><span> {
</span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-string">"mysql:host=<span class="hljs-subst">$servername</span></span></span><span>;dbname=</span><span><span class="hljs-subst">$dbname</span></span><span>", </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>);
</span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">setAttribute</span></span><span>(PDO::</span><span><span class="hljs-variable constant_">ATTR_ERRMODE</span></span><span>, PDO::</span><span><span class="hljs-variable constant_">ERRMODE_EXCEPTION</span></span><span>);
</span><span><span class="hljs-variable">$stmt</span></span><span> = </span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">prepare</span></span><span>(</span><span><span class="hljs-string">"INSERT INTO users (username, email) VALUES (:username, :email)"</span></span><span>);
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">execute</span></span><span>([</span><span><span class="hljs-string">':username'</span></span><span> => </span><span><span class="hljs-string">'Bob'</span></span><span>, </span><span><span class="hljs-string">':email'</span></span><span> => </span><span><span class="hljs-string">'[email protected]'</span></span><span>]);
</span><span><span class="hljs-variable">$lastId</span></span><span> = </span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">lastInsertId</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\nutiliser PDO Insérer un enregistrement,Nouveaux dossiers ID pour: "</span></span><span> . </span><span><span class="hljs-variable">$lastId</span></span><span>;
} </span><span><span class="hljs-keyword">catch</span></span><span> (PDOException </span><span><span class="hljs-variable">$e</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"erreur: "</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
<span class="hljs-comment">/**
* 3. Choses à noter
*
* - `mysql_insert_id()` Il est tôt MySQL Étendumilieu的函数,已不推荐utiliser,建议utiliser MySQLi ou PDO。
* - Auto-croissant ID C'est pour la table AUTO_INCREMENT Entiers uniques générés par les champs。
* - Se faire auto-augmenter ID 必须exister同一个数据库连接milieu进行,Sinon, la valeur correcte ne peut être obtenue。
* - 如果插入失败ou未插入Auto-croissant字段,Obtenu ID 可能pour 0。
*/</span>
</span><span><span class="hljs-variable">$conn</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>