Start · Sprachen · PHP · Referenz · cubrid_client_encoding

cubrid_client_encoding

Funktion

Gibt den aktuellen Zeichensatz (Encoding) der aktiven CUBRID-Datenbankverbindung zurück.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_client_encoding(resource $conn_identifier): string

Beschreibung

cubrid_client_encoding() ermittelt den Zeichensatz, der für die angegebene CUBRID-Verbindung verwendet wird. Der zurückgegebene String entspricht dem Namen des Encodings, das beim Verbindungsaufbau mit dem CUBRID-Server ausgehandelt wurde, zum Beispiel utf-8 oder euc-kr.

Die Funktion ist nützlich, wenn in einer Anwendung dynamisch geprüft werden muss, welche Zeichenkodierung für Datenbankoperationen gilt – etwa um sicherzustellen, dass Text korrekt konvertiert wird, bevor er in die Datenbank geschrieben oder nach der Abfrage weiterverarbeitet wird.

Insbesondere in mehrsprachigen Anwendungen oder bei der Migration von Daten zwischen verschiedenen Systemen ist es wichtig, das aktuelle Encoding zu kennen, um Zeichenkonvertierungsprobleme (Mojibake) zu vermeiden.

Die Funktion entspricht funktional mysql_client_encoding() aus der MySQL-Erweiterung, operiert aber auf CUBRID-Verbindungsressourcen.

Parameter

Name Typ Default Beschreibung
$conn_identifier Pflicht resource Eine gültige CUBRID-Verbindungsressource, wie sie von cubrid_connect() oder cubrid_connect_with_url() zurückgegeben wird.

Rückgabewert

Typ
string
Beschreibung
Gibt den Namen des aktuellen Zeichensatzes der Verbindung als String zurück, z. B. utf-8 oder euc-kr. Im Fehlerfall wird false zurückgegeben.

Beispiele

Zeichensatz einer CUBRID-Verbindung abfragen

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');

if (!$conn) {
    die('Verbindung fehlgeschlagen: ' . cubrid_error());
}

$encoding = cubrid_client_encoding($conn);
echo 'Aktuelles Encoding der Verbindung: ' . $encoding;

cubrid_disconnect($conn);
?>
Aktuelles Encoding der Verbindung: utf-8

Encoding prüfen und ggf. Konvertierung vornehmen

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');

if (!$conn) {
    die('Verbindung fehlgeschlagen.');
}

$encoding = cubrid_client_encoding($conn);

// Sicherstellen, dass das Encoding UTF-8 ist
if (strtolower($encoding) !== 'utf-8') {
    echo 'Warnung: Verbindung nutzt nicht UTF-8, sondern: ' . $encoding . PHP_EOL;
    // Hier könnte eine Konvertierung oder ein Verbindungsabbruch erfolgen
} else {
    echo 'Verbindungs-Encoding ist korrekt: ' . $encoding . PHP_EOL;
}

cubrid_disconnect($conn);
?>
Verbindungs-Encoding ist korrekt: utf-8

// Wichtig · Fallstricke

Die CUBRID-PHP-Erweiterung muss installiert und aktiviert sein (extension=cubrid.so bzw. extension=php_cubrid.dll). Die Funktion steht nur zur Verfügung, wenn PHP mit CUBRID-Unterstützung kompiliert oder die Erweiterung nachgeladen wurde.

Das zurückgegebene Encoding hängt vom CUBRID-Server und den beim Verbindungsaufbau verwendeten Parametern ab. Stellen Sie sicher, dass Server- und Client-Encoding übereinstimmen, um Datenverlust oder fehlerhafte Zeichenkodierung zu vermeiden.