<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sv">
	<id>https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=PDO%3A%3AsqliteCreateAggregate</id>
	<title>PDO::sqliteCreateAggregate - Versionshistorik</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=PDO%3A%3AsqliteCreateAggregate"/>
	<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=PDO::sqliteCreateAggregate&amp;action=history"/>
	<updated>2026-04-29T14:09:26Z</updated>
	<subtitle>Versionshistorik för denna sida på wikin</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.linux.se/index.php?title=PDO::sqliteCreateAggregate&amp;diff=6611&amp;oldid=prev</id>
		<title>Admin den 23 december 2024 kl. 06.41</title>
		<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=PDO::sqliteCreateAggregate&amp;diff=6611&amp;oldid=prev"/>
		<updated>2024-12-23T06:41:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.linux.se/index.php?title=PDO::sqliteCreateAggregate&amp;amp;diff=6611&amp;amp;oldid=6610&quot;&gt;Visa ändringar&lt;/a&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.linux.se/index.php?title=PDO::sqliteCreateAggregate&amp;diff=6610&amp;oldid=prev</id>
		<title>Admin: Skapade sidan med &#039;== Pdo\Sqlite::createAggregate == &#039;&#039;(PHP 8 &gt;= 8.4.0)&#039;&#039;  &#039;&#039;&#039;Pdo\Sqlite::createAggregate&#039;&#039;&#039; — Registers an aggregating user-defined function for use in SQL statements  === Beskrivning === Den här metoden är liknande Pdo\Sqlite::createFunction(), men registrerar funktioner som kan användas för att beräkna ett resultat som aggregeras över alla rader i en fråga.  Huvudskillnaden är att två funktioner krävs: en för att hantera varje rad (step) och en för att...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=PDO::sqliteCreateAggregate&amp;diff=6610&amp;oldid=prev"/>
		<updated>2024-12-23T06:40:11Z</updated>

		<summary type="html">&lt;p&gt;Skapade sidan med &amp;#039;== Pdo\Sqlite::createAggregate == &amp;#039;&amp;#039;(PHP 8 &amp;gt;= 8.4.0)&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;Pdo\Sqlite::createAggregate&amp;#039;&amp;#039;&amp;#039; — Registers an aggregating user-defined function for use in SQL statements  === Beskrivning === Den här metoden är liknande &lt;a href=&quot;/index.php?title=Pdo%5CSqlite::createFunction()&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Pdo\Sqlite::createFunction() (sidan existerar inte)&quot;&gt;Pdo\Sqlite::createFunction()&lt;/a&gt;, men registrerar funktioner som kan användas för att beräkna ett resultat som aggregeras över alla rader i en fråga.  Huvudskillnaden är att två funktioner krävs: en för att hantera varje rad (step) och en för att...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny sida&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Pdo\Sqlite::createAggregate ==&lt;br /&gt;
&amp;#039;&amp;#039;(PHP 8 &amp;gt;= 8.4.0)&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pdo\Sqlite::createAggregate&amp;#039;&amp;#039;&amp;#039; — Registers an aggregating user-defined function for use in SQL statements&lt;br /&gt;
&lt;br /&gt;
=== Beskrivning ===&lt;br /&gt;
Den här metoden är liknande [[Pdo\Sqlite::createFunction()]], men registrerar funktioner som kan användas för att beräkna ett resultat som aggregeras över alla rader i en fråga.&lt;br /&gt;
&lt;br /&gt;
Huvudskillnaden är att två funktioner krävs: en för att hantera varje rad (step) och en för att slutföra aggregeringen (finalize).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tips:&amp;#039;&amp;#039;&amp;#039; Genom att använda den här metoden är det möjligt att åsidosätta inbyggda SQL-funktioner.&lt;br /&gt;
&lt;br /&gt;
=== Parametrar ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039;: Namnet på funktionen som används i SQL-uttryck.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;step&amp;#039;&amp;#039;&amp;#039;: Callback-funktion som anropas för varje rad i resultatuppsättningen.&lt;br /&gt;
  Denna funktion måste definieras som:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  step(&lt;br /&gt;
      mixed $context,&lt;br /&gt;
      int $rownumber,&lt;br /&gt;
      mixed $value,&lt;br /&gt;
      mixed ...$values&lt;br /&gt;
  ): mixed&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
  **Parametrar för step:**&lt;br /&gt;
  * &amp;#039;&amp;#039;&amp;#039;context&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;null&amp;#039;&amp;#039; för den första raden, annars värdet som returnerades av föregående &amp;#039;&amp;#039;step&amp;#039;&amp;#039;-anrop.&lt;br /&gt;
  * &amp;#039;&amp;#039;&amp;#039;rownumber&amp;#039;&amp;#039;&amp;#039;: Aktuellt radnummer.&lt;br /&gt;
  * &amp;#039;&amp;#039;&amp;#039;value&amp;#039;&amp;#039;&amp;#039;: Det första argumentet som skickas till aggregeringsfunktionen.&lt;br /&gt;
  * &amp;#039;&amp;#039;&amp;#039;values&amp;#039;&amp;#039;&amp;#039;: Ytterligare argument.&lt;br /&gt;
&lt;br /&gt;
  Returvärdet används som &amp;#039;&amp;#039;context&amp;#039;&amp;#039; i nästa anrop av &amp;#039;&amp;#039;step&amp;#039;&amp;#039; eller &amp;#039;&amp;#039;finalize&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;finalize&amp;#039;&amp;#039;&amp;#039;: Callback-funktion för att aggregera data från alla rader. Funktionen anropas när alla rader har behandlats och ska returnera resultatet.&lt;br /&gt;
  Denna funktion måste definieras som:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  fini(mixed $context, int $rowcount): mixed&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
  **Parametrar för finalize:**&lt;br /&gt;
  * &amp;#039;&amp;#039;&amp;#039;context&amp;#039;&amp;#039;&amp;#039;: Värdet som returnerades från sista anropet till &amp;#039;&amp;#039;step&amp;#039;&amp;#039;.&lt;br /&gt;
  * &amp;#039;&amp;#039;&amp;#039;rowcount&amp;#039;&amp;#039;&amp;#039;: Antalet rader som aggregeringen har utförts över.&lt;br /&gt;
&lt;br /&gt;
  Returvärdet används som det slutgiltiga resultatet av aggregeringen.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;numArgs&amp;#039;&amp;#039;&amp;#039;: Anger för SQLite-parsern om callback-funktionen tar ett bestämt antal argument.&lt;br /&gt;
&lt;br /&gt;
=== Returvärde ===&lt;br /&gt;
Returnerar &amp;#039;&amp;#039;&amp;#039;true&amp;#039;&amp;#039;&amp;#039; vid framgång eller &amp;#039;&amp;#039;&amp;#039;false&amp;#039;&amp;#039;&amp;#039; vid fel.&lt;br /&gt;
&lt;br /&gt;
=== Exempel ===&lt;br /&gt;
&lt;br /&gt;
==== Exempel #1: Pdo\Sqlite::createAggregate() ====&lt;br /&gt;
I det här exemplet skapar vi en anpassad aggregeringsfunktion, kallad &amp;#039;&amp;#039;&amp;#039;max_length&amp;#039;&amp;#039;&amp;#039;, som beräknar längden på den längsta strängen i en kolumn.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$data = [&lt;br /&gt;
   &amp;#039;one&amp;#039;,&lt;br /&gt;
   &amp;#039;two&amp;#039;,&lt;br /&gt;
   &amp;#039;three&amp;#039;,&lt;br /&gt;
   &amp;#039;four&amp;#039;,&lt;br /&gt;
   &amp;#039;five&amp;#039;,&lt;br /&gt;
   &amp;#039;six&amp;#039;,&lt;br /&gt;
   &amp;#039;seven&amp;#039;,&lt;br /&gt;
   &amp;#039;eight&amp;#039;,&lt;br /&gt;
   &amp;#039;nine&amp;#039;,&lt;br /&gt;
   &amp;#039;ten&amp;#039;,&lt;br /&gt;
];&lt;br /&gt;
$db = new Pdo\Sqlite(&amp;#039;sqlite::memory:&amp;#039;);&lt;br /&gt;
$db-&amp;gt;exec(&amp;quot;CREATE TABLE strings(a)&amp;quot;);&lt;br /&gt;
$insert = $db-&amp;gt;prepare(&amp;#039;INSERT INTO strings VALUES (?)&amp;#039;);&lt;br /&gt;
foreach ($data as $str) {&lt;br /&gt;
    $insert-&amp;gt;execute(array($str));&lt;br /&gt;
}&lt;br /&gt;
$insert = null;&lt;br /&gt;
&lt;br /&gt;
function max_len_step($context, $row_number, $string)&lt;br /&gt;
{&lt;br /&gt;
    if (strlen($string) &amp;gt; $context) {&lt;br /&gt;
        $context = strlen($string);&lt;br /&gt;
    }&lt;br /&gt;
    return $context;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function max_len_finalize($context, $row_count)&lt;br /&gt;
{&lt;br /&gt;
    return $context === null ? 0 : $context;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;createAggregate(&amp;#039;max_len&amp;#039;, &amp;#039;max_len_step&amp;#039;, &amp;#039;max_len_finalize&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
var_dump($db-&amp;gt;query(&amp;#039;SELECT max_len(a) from strings&amp;#039;)-&amp;gt;fetchAll());&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tips:&amp;#039;&amp;#039;&amp;#039; Det rekommenderas inte att lagra värden i &amp;#039;&amp;#039;context&amp;#039;&amp;#039; för senare bearbetning, eftersom detta kan orsaka hög minnesanvändning vid stora resultatuppsättningar.&lt;br /&gt;
&lt;br /&gt;
=== Se även ===&lt;br /&gt;
* [[Pdo\Sqlite::createFunction()]] - Registrerar en användardefinierad funktion för användning i SQL-uttryck.&lt;br /&gt;
* [[Pdo\Sqlite::createCollation()]] - Registrerar en användardefinierad funktion för användning som sorteringsfunktion i SQL-uttryck.&lt;br /&gt;
* [[sqlite_create_function()]]&lt;br /&gt;
* [[sqlite_create_aggregate()]]&lt;br /&gt;
&lt;br /&gt;
= Sidslut =&lt;br /&gt;
&lt;br /&gt;
Orginalhemsidan på Engelska :https://www.php.net/manual/en/pdo-sqlite.createaggregate.php&lt;br /&gt;
&amp;lt;BR&amp;gt;[[PHP]]&lt;br /&gt;
[[Funktioner]]&lt;br /&gt;
[[Funktionsreferens]]&lt;br /&gt;
[[Databas-tillägg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HR&amp;gt;&lt;br /&gt;
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på &lt;br /&gt;
https://www.linux.se/kontaka-linux-se/&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;Tack till [https://datorhjalp.se/huddinge  Datorhjälp Huddinge] som har  sponsrat [https://www.linux.se Linux.se] med webbhotell.&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Php]]&lt;br /&gt;
[[Kategori:Databas-tillägg]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>