Connectez une application PHP à LindormTable à l'aide de l'extension MySQLi et de Lindorm SQL via l'endpoint compatible MySQL.
Prérequis
Avant de commencer, vérifiez que vous disposez des éléments suivants :
PHP 8.0 ou version ultérieure installé
La fonctionnalité de compatibilité MySQL activée pour votre instance Lindorm. Consultez la section Activer la fonctionnalité de compatibilité MySQL
L'adresse IP de votre client ajoutée à la liste d'autorisation de votre instance Lindorm. Consultez la section Configurer une liste d'autorisation
Installer le module php-mysql
Installez le module php-mysql avant de vous connecter à LindormTable. Pour les instructions d'installation, consultez la page Installation de PHP.
Configurer les paramètres de connexion
Récupérez l'endpoint compatible MySQL de votre instance Lindorm. Consultez la rubrique Afficher les adresses de connexion.
Configurez les paramètres de connexion suivants dans votre code PHP :
$lindorm_addr="ld-uf6k8yqb741t3****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com";
$lindorm_username="user";
$lindorm_password="test";
$lindorm_database="default";
$lindorm_port=33060;
Paramètres de connexion
| Paramètre | Description |
|---|---|
$lindorm_addr |
L'endpoint compatible MySQL pour LindormTable. Consultez la rubrique Afficher les adresses de connexion pour trouver l'endpoint. Utilisez l'adresse VPC lorsque votre application s'exécute sur une instance ECS, et l'adresse Internet lors d'une connexion via le réseau public. |
$lindorm_username |
Le nom d'utilisateur pour LindormTable. Pour réinitialiser un mot de passe oublié, consultez la rubrique Modifier le mot de passe d'un utilisateur. |
$lindorm_password |
Le mot de passe de l'utilisateur LindormTable. |
$lindorm_database |
La base de données à laquelle se connecter. La base de données par défaut est default. |
$lindorm_port |
Le port du protocole MySQL. Il est fixé à 33060. |
Choisissez le type d'endpoint adapté à votre réseau :
ECS (VPC) : Connectez-vous via un cloud privé virtuel (VPC) pour bénéficier d'une sécurité accrue et d'une latence réduite. Définissez
$lindorm_addrsur l'adresse VPC compatible MySQL.Local ou distant (réseau public) : Activez d'abord l'endpoint public. Dans la console Lindorm, accédez à Database Connections > Wide Table Engine et cliquez sur Enable Public Endpoint. Définissez ensuite
$lindorm_addrsur l'adresse Internet compatible MySQL.
Exemple complet
L'exemple suivant se connecte à LindormTable, crée une table, insère une ligne à l'aide de upsert into et interroge les données.
<?php
// The MySQL-compatible endpoint for LindormTable.
$lindorm_addr="ld-uf6k8yqb741t3****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com";
// The username for the LindormTable connection.
$lindorm_username="user";
// The password for the LindormTable connection.
$lindorm_password="test";
// The name of the database to connect to.
$lindorm_database="default";
// The port for the MySQL protocol of LindormTable.
$lindorm_port=33060;
// Connect to LindormTable.
$lindorm_conn = mysqli_connect(
$lindorm_addr,
$lindorm_username,
$lindorm_password,
$lindorm_database,
$lindorm_port
);
if (!$lindorm_conn) {
printf("Can't connect to Lindorm Server. Errorcode: %s \n", mysqli_error($lindorm_conn));
exit;
} else {
printf("connect to Lindorm successfully\n");
}
// Create a table.
$create_table = "create table if not exists user_test(id int, name varchar, age int, primary key(id))";
if (mysqli_query($lindorm_conn, $create_table)) {
printf("create table successfully\n");
} else {
printf("create table error: %s \n", mysqli_error($lindorm_conn));
exit;
}
// Insert data. LindormTable uses "upsert into" instead of standard INSERT INTO.
$insert_sql = "upsert into user_test(id, name, age) values(1, 'zhangsan', 17)";
if (mysqli_query($lindorm_conn, $insert_sql)) {
printf("insert data successfully\n");
} else {
printf("insert data error: %s \n", mysqli_error($lindorm_conn));
exit;
}
// Query data.
$select_sql = "select * from user_test";
$result = mysqli_query($lindorm_conn, $select_sql);
while ($row = mysqli_fetch_array($result)) {
printf("id %d\n", $row["id"]);
printf("name %s\n", $row["name"]);
printf("age %d\n", $row["age"]);
}
?>
Sortie attendue :
connect to Lindorm successfully
create table successfully
insert data successfully
id 1
name zhangsan
age 17
Fonctionnement de l'exemple
Chaque bloc de l'exemple effectue une opération distincte :
Connexion :
mysqli_connect()établit une connexion en utilisant l'endpoint compatible MySQL et le port fixe33060.Création de table : L'instruction
CREATE TABLE IF NOT EXISTScrée la tableuser_testavecidcomme clé primaire. Cette instruction est idempotente : son exécution multiple ne génère pas d'erreur.Insertion de données : LindormTable utilise
upsert intoau lieu de la commande standardINSERT INTO. Si une ligne avec la même clé primaire existe déjà, l'opération upsert la met à jour.Interrogation des données :
mysqli_query()renvoie un jeu de résultats.mysqli_fetch_array()parcourt les lignes, les valeurs des colonnes étant accessibles par leur nom.
Étapes suivantes
Pour en savoir plus sur la syntaxe Lindorm SQL, consultez la Référence Lindorm SQL.
Pour gérer les utilisateurs et les permissions, consultez la section Gérer les utilisateurs.