1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-24 07:02:06 +01:00
Files
archived-doc-fr/reference/pgsql/functions/pg-insert.xml
Louis-Arnaud 2d314f78aa CI: check-style + nettoyage TRADUCTIONS.txt (#2545)
* CI: add French style checker based on TRADUCTIONS.txt

Checks changed XML files in PRs for:
- Direct address forms (vous/votre/vos) → warnings
- French grammar errors (etc..., comme par exemple, si il) → errors
- Incorrect terminology (librairie, chiffrage, encryption) → warnings

Inspired by doc-ja's textlint+prh approach but simpler:
runs directly on XML sources, no PhD render needed.

Only errors (grammar/spelling) fail the CI.
Style warnings appear as PR annotations without blocking.

* test: introduce style errors to validate CI check

* Revert "test: introduce style errors to validate CI check"

This reverts commit 7c1d523c6bbef116f54fc6dad7b61a45ee4f7ddd.

* Corriger toutes les violations de style TRADUCTIONS.txt

- 174x "Notez que" → "Il est à noter que"
- 50x "depuis PHP X" → "à partir de PHP X"
- 50x "votre" → le/la/du
- 15x "si il" → "s'il"
- 14x "Vous pouvez" → "Il est possible de"
- 14x "encryption" (faux positifs entity refs exclus)
- 12x "assurez-vous" → "il faut s'assurer"
- 12x "Vous devez" → "Il faut"
- 11x "vos" → les/des
- 9x "comme par exemple" → "par exemple"
- 6x "Vous devriez" → "Il est recommandé de"
- 2x "optionel" → "optionnel"
- 2x "reportez-vous" → "se reporter"

Toutes les règles passent désormais en erreur dans la CI.

* Harmoniser les noms de workflows GitHub Actions

- integrate.yaml → build.yml (extension + nom cohérent)
- check-style-fr.yml → check-style.yml ("-fr" redondant)
- Aligner les noms de workflow et job

* Lire les règles dynamiquement depuis TRADUCTIONS.txt

Le script parse TRADUCTIONS.txt au démarrage et génère les règles
de vérification automatiquement. Plus aucune règle en dur.

* Règles dynamiques depuis TRADUCTIONS.txt

Le script CI lit les lignes INTERDIT de TRADUCTIONS.txt pour générer
les règles de vérification. Plus aucune règle en dur dans le script.
Corrige les 27 violations restantes (Depuis PHP → À partir de PHP).

* Corriger les trailing whitespace
2026-02-25 13:13:51 +01:00

202 lines
6.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 39bb8a868935a56cfce438b0169e13c02c93211c Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.pg-insert" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>pg_insert</refname>
<refpurpose>
Insère un tableau dans une table
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>PgSql\Result</type><type>string</type><type>bool</type></type><methodname>pg_insert</methodname>
<methodparam><type>PgSql\Connection</type><parameter>connection</parameter></methodparam>
<methodparam><type>string</type><parameter>table_name</parameter></methodparam>
<methodparam><type>array</type><parameter>values</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer><constant>PGSQL_DML_EXEC</constant></initializer></methodparam>
</methodsynopsis>
<para>
<function>pg_insert</function> insère les <parameter>values</parameter>
dans la table <parameter>table_name</parameter>.
</para>
<para>
Si <parameter>flags</parameter> est spécifié,
<function>pg_convert</function> est appliqué à
<parameter>values</parameter> avec les drapeaux fournis.
</para>
<para>
Par défaut <function>pg_insert</function> passe des valeurs brutes.
Les valeurs doivent être échappées ou le drapeau <constant>PGSQL_DML_ESCAPE</constant>
doit être spécifié dans <parameter>flags</parameter>.
<constant>PGSQL_DML_ESCAPE</constant> met des guillemets et échappe les paramètres/identifiants.
Par conséquent, les noms de table/colonnes deviennent sensibles à la casse.
</para>
<para>
Il est à noter que ni l'échappement ni les requêtes préparées peuvent protéger des
requêtes LIKE, JSON, Tableaux, Regex, etc. Ces paramètres devraient être
traités en fonction de leur contexte. C'est-à-dire échapper/valider les valeurs.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>connection</parameter></term>
<listitem>
&pgsql.parameter.connection;
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>table_name</parameter></term>
<listitem>
<para>
Nom de la table dans laquelle les lignes seront insérées. La table
<parameter>table_name</parameter> doit avoir au moins autant de colonnes
que <parameter>values</parameter> a d'éléments.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>values</parameter></term>
<listitem>
<para>
Un &array; dont les clés sont les noms des champs dans la table <parameter>table_name</parameter>,
et où les valeurs sont les valeurs de ces champs qui seront insérées.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
Toutes combinaisons de constantes parmi
<constant>PGSQL_CONV_OPTS</constant>,
<constant>PGSQL_DML_NO_CONV</constant>,
<constant>PGSQL_DML_ESCAPE</constant>,
<constant>PGSQL_DML_EXEC</constant>,
<constant>PGSQL_DML_ASYNC</constant> ou
<constant>PGSQL_DML_STRING</constant>. Si
<constant>PGSQL_DML_STRING</constant> fait partie du paramètre
<parameter>flags</parameter>, alors la requête sera retournée.
Lorsque la constante <constant>PGSQL_DML_NO_CONV</constant> ou la constante
<constant>PGSQL_DML_ESCAPE</constant> est définie, aucun appel à la fonction
<function>pg_convert</function> ne sera effectué en interne.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;. Ou retourne une &string; si <constant>PGSQL_DML_STRING</constant>
est fourni via <parameter>flags</parameter>.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Une <classname>ValueError</classname> est déclenchée lorsque la table spécifiée est invalide.
</para>
<para>
Une <classname>ValueError</classname> ou <classname>TypeError</classname> est déclenchée
lorsque la valeur ou le type du champ ne correspond pas correctement à un type PostgreSQL.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.3.0</entry>
<entry>
Lance désormais une erreur <classname>ValueError</classname> lorsque la table spécifiée est invalide ;
précédemment, un <constant>E_WARNING</constant> était émis.
</entry>
</row>
<row>
<entry>8.3.0</entry>
<entry>
Lance désormais une erreur <classname>ValueError</classname> ou <classname>TypeError</classname>
lorsque la valeur ou le type du champ ne correspond pas correctement à un type PostgreSQL ;
précédemment, un <constant>E_WARNING</constant> était émis.
</entry>
</row>
&pgsql.changelog.return-result-object;
&pgsql.changelog.connection-object;
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple avec <function>pg_insert</function></title>
<programlisting role="php">
<![CDATA[
<?php
$db = pg_connect ('dbname=foo');
// Ceci est sûr quelque peu, car toutes les valeurs sont échappées
// Cependant PostgreSQL supporte les JSON/Tableaux. Ceci ne sont pas
// sûr ni par échappement ni par les requêtes préparés.
$res = pg_insert($dbconn, 'post_log', $_POST, PGSQL_DML_ESCAPE);
if ($res) {
echo "Les données POSTées ont pu être enregistrées avec succès.\n";
} else {
echo "Il y a un problème avec les données.\n";
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>pg_convert</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->