Maison >développement back-end >tutoriel php >Résumé des dernières questions d'entretien PHP classiques (Partie 2)
Résumé des questions d'entretien PHP junior classic (Partie 1)
isset détermine si la variable est définie ou vide
变量存在返回ture,否则返回false 变量定义不赋值返回false unset一个变量,返回false 变量赋值为null,返回false
Vide : Déterminez si la valeur de la variable est vide. Tout ce qui peut être converti en faux est vide. S'il est vide, il renvoie vrai, sinon il renvoie faux.
"",0,"0",NULL,FALSE都认为为空,返回true 没有任何属性的对象都认为是空
is_null : Vérifiez si la valeur entrante (valeur, variable, expression) est nulle
定义了,但是赋值为Null 定义了,但是没有赋值 unset一个变量
La seule tâche d'un index normal (un index défini par le mot-clé KEY ou INDEX) est d'accélérer l'accès aux données.
Les index normaux permettent aux colonnes de données indexées de contenir des valeurs en double. Si vous pouvez déterminer qu'une certaine colonne de données ne contiendra que des valeurs différentes les unes des autres, vous devez utiliser le mot-clé UNIQUE pour la définir comme index unique lors de la création d'un index pour cette colonne de données. En d’autres termes, un index unique peut garantir l’unicité des enregistrements de données.
La clé primaire est un index unique spécial. Un seul index de clé primaire peut être défini dans une table. La clé primaire est utilisée pour identifier de manière unique un enregistrement et est créée à l'aide du mot-clé PRIMARY KEY.
Un index peut couvrir plusieurs colonnes de données, comme un index INDEX(columnA, columnB), qui est un index conjoint.
Les index peuvent considérablement améliorer la vitesse d'interrogation des données, mais ralentiront la vitesse d'insertion, de suppression et de mise à jour des tables, car lors de l'exécution de ces opérations d'écriture, le fichier d'index doit être exploité.
Utilisez la fonction htmlspecialchars() pour filtrer le contenu soumis et matérialiser les symboles spéciaux dans la chaîne.
caractères spéciaux, ce qui a permis au client de soumettre des Les instructions SQL via les variables globales POST et GET sont normalement implémentées.
Moyens d'empêcher l'injection SQL :addslashesConvertir les instructions SQL
message d'erreur, faites ne parcourez pas les informations d'erreur de sortie sur le serveur et n'écrivez pas les informations d'erreur dans le fichier journal.
Forgeries, CSRF)
Évaluation)
Soumissions
Duokou répond aux demandes des utilisateurs en accédant à différents fichiers. Un programme Web à entrée unique dirige toutes les requêtes vers un fichier de script.
Une entrée unique facilite le contrôle des autorisations et facilite les contrôles de sécurité sur les requêtes http.
Inconvénients : L'URL n'est pas si belle, et surtout peu conviviale pour les moteurs de recherche.
Accédez rapidement à des informations spécifiques dans la table de données et améliorez la vitesse de récupération
Créez un index unique pour garantir l'unicité de chaque ligne de données dans le sexe de la table de base de données.
Accélérez les tables et les jointures entre les tables
Lorsque vous utilisez des clauses de regroupement et de tri pour la récupération de données, vous pouvez réduire considérablement le regroupement dans les requêtes et le temps de tri
Impact négatif :
La création et la maintenance d'index prennent du temps, et ce temps augmente à mesure que la quantité de données augmente. Les index doivent occuper de l'espace physique, et non seulement les tables doivent occuper des données ; Espace, chaque index doit également occuper de l'espace physique ; lorsque la table est ajoutée, supprimée, modifiée, l'index doit être maintenu dynamiquement, ce qui réduit la vitesse de maintenance des données.
Créez un index sur les champs les plus fréquemment utilisés pour affiner la portée de la requête.
Créer des index sur les champs fréquemment utilisés qui doivent être triés
Il n'est pas approprié de créer un index pour les colonnes rarement impliquées dans des requêtes ou des colonnes avec de nombreuses valeurs en double.
Pour certains types de données spéciaux, il n'est pas approprié de créer des index, tels que des champs de texte (texte), etc.
La caractéristique la plus importante qui le distingue des autres bases de données est son plug. -moteur de stockage de table de type in. N'oubliez pas : le moteur de stockage est basé sur des tables et non sur des bases de données.
La différence entre InnoDB et MyISAM :
Moteur de stockage InnoDB : Principalement pour les applications OLTP (Online Transaction Processing, traitement des transactions en ligne), c'est le premier support complet ACID moteur de stockage de transactions (le premier moteur de stockage de BDB à prendre en charge les transactions, a arrêté son développement).
Caractéristiques :
Conception de verrouillage de rangée, prise en charge des clés étrangères
Support similaire à Oracle ; Lecture non verrouillable cohérente avec le style (c'est-à-dire : les opérations de lecture ne généreront pas de verrous par défaut
InnoDB place les données dans un espace table logique, effectué par InnoDB lui-même) ; À partir de la version MySQL 4.1, chaque table du moteur de stockage InnoDB peut être stockée dans un fichier ibd indépendant
InnoDB utilise MVCC (Multi-version Concurrency Control : la lecture bloquera l'écriture et l'écriture ; ne bloquera pas la lecture) pour obtenir une simultanéité élevée, et implémente les 4 niveaux d'isolement du standard SQL (la valeur par défaut est le niveau REPEATABLE)
InnoDB fournit également des performances élevées et une haute disponibilité ; des fonctions telles que l'insertion de tampon, la double écriture, l'index de hachage adaptatif et la lecture anticipée
InnoDB utilise une méthode clusterisée pour stocker les données dans la table. clé primaire (si la clé primaire n'est pas explicitement spécifiée lors de la création de la table, InnoDB générera un 6 pour chaque ligne. octet ROWID, et l'utilisera comme clé primaire
La clé primaire) ; La table InnoDB aura trois champs cachés : En plus du DB_ROW_ID de 6 octets mentionné ci-dessus, il existe également un DB_TX_ID (ID de transaction) de 6 octets et un DB_ROLL_PTR de 7 octets (pointant vers l'adresse du segment d'annulation correspondant). Cela peut être vu via Innodb Monitor ;
Moteur de stockage MyISAM : est le moteur de stockage officiellement fourni par MySQL, principalement pour OLAP (Online Analytical Processing, analyse en ligne et traitement) des demandes.
Caractéristiques :
Ne prend pas en charge les transactions, mais prend en charge les tables et les index de texte intégral. La vitesse de fonctionnement est rapide ;
La table du moteur de stockage MyISAM se compose de MYD et MYI, MYD est utilisé pour stocker les fichiers de données et MYI est utilisé pour stocker les fichiers d'index. La base de données MySQL met uniquement en cache ses fichiers d'index, et la mise en cache des fichiers de données est laissée au système d'exploitation lui-même
À partir de la version MySQL 5.0, MyISAM prend en charge 256 T de données de table unique par défaut ;
Tout d'abord, qu'est-ce que la jointure croisée : jointure croisée Également appelé produit cartésien, il fait référence à la mise en correspondance directe de tous les enregistrements d'une table avec tous les enregistrements d'une autre table sans utiliser aucune condition.
Jointure interne est une connexion croisée avec uniquement des conditions. Les enregistrements qui remplissent les conditions sont filtrés en fonction d'une certaine condition. Les enregistrements qui ne remplissent pas les conditions n'apparaîtront pas dans le résultat. set, c'est-à-dire que les jointures internes connectent uniquement les lignes correspondantes.
Jointure externe L'ensemble de résultats contient non seulement des lignes qui répondent aux conditions de jointure, mais inclut également toutes les lignes de données
dans la table de gauche, la table de droite ou les deux. Ces trois situations sont appelées. Il s’agit d’une jointure externe gauche, d’une jointure externe droite et d’une jointure externe complète.
Jointure externe gauche, également appelée jointure gauche, la table de gauche est la table principale, tous les enregistrements de la table de gauche apparaîtront dans l'ensemble de résultats, et les enregistrements qui ne correspondent pas dans la table de droite doivent toujours être affiché, à droite Les valeurs des champs correspondants sont remplies de NULL. Jointure externe droite, également appelée jointure droite, la table de droite est la table principale et tous les enregistrements de la table de droite apparaîtront dans le jeu de résultats. Les jointures gauche et droite sont interchangeables et MySQL ne prend actuellement pas en charge les jointures externes complètes.
MyISAM, InnoDB, BDB (BerkeleyDB), Merge, Memory (Heap), Exemple , Federated,
Archive, CSV, Blackhole, MaxDB et plus d'une douzaine de moteurs
Orienté objet est un modèle de conception d'un programme, qui contribue à améliorer la réutilisabilité du programme et rend la structure du programme plus claire. Les principales fonctionnalités sont : l'encapsulation, l'héritage et le polymorphisme.
Cinq Principes de base : Principe de responsabilité unique ; Principe de remplacement ; Principe de séparation des interfaces ;
Réponse de référence :
Les routes statiques sont des routes spécifiées par des tables de routage conçues et construites par les administrateurs système. Il convient aux réseaux où le nombre de passerelles est limité et où la topologie du réseau ne change pas fréquemment. Son inconvénient est qu'il ne peut pas s'adapter dynamiquement aux changements des conditions du réseau. Lorsque les conditions du réseau changent, la table de routage doit être modifiée par l'administrateur réseau.
Le routage dynamique est construit dynamiquement par les protocoles de routage. Les protocoles de routage mettent à jour le contenu des tables de routage en temps réel en échangeant les informations de routage qu'ils possèdent. Le routage dynamique peut apprendre automatiquement la topologie du réseau et mettre à jour la table de routage. L’inconvénient est que le routage des informations de mise à jour diffusées occupera une grande quantité de bande passante réseau.
Memcahce stocke toutes les données en mémoire à l'aide d'une table de hachage. Chaque donnée est composée d'une clé et d'une valeur. Chaque clé est unique. Lorsque vous souhaitez accéder à une certaine valeur, suivez d'abord les étapes pour la trouver. valeur et renvoie le résultat.
Memcahce utilise l'algorithme LRU pour effacer progressivement les données expirées.
Les frameworks Ajax populaires incluent jQuery, Prototype, Dojo et MooTools.
Le principe de fonctionnement d'Ajax est que l'emplacement spécifié d'une page peut charger tout le contenu de sortie d'une autre page de cette manière, une page statique peut également obtenir les informations de données renvoyées par la base de données. Par conséquent, la technologie Ajax permet à une page Web statique de communiquer avec le serveur sans actualiser la page entière, réduisant ainsi le temps d'attente des utilisateurs, réduisant ainsi le trafic réseau et améliorant la convivialité de l'expérience client.
Lors de l'utilisation d'Ajax, cela implique la transmission de données, c'est-à-dire le renvoi des données du serveur au client. Le serveur et le client utilisent des langages de script différents pour traiter les données, ce qui nécessite un format de données commun, XML<.> et json sont les deux plus couramment utilisés, et json est plus simple que XML.
Lorsque vous souhaitez modifier deux tables différentes dans la base de données en même temps, s'il ne s'agit pas d'une transaction, lorsque la première table est modifiée, une exception peut survenir lors du processus de modification de la deuxième table et elle ne peut pas être modifiée . A ce stade, seule la deuxième table peut être modifiée. Les deux tables sont toujours dans leur état non modifié, tandis que la première table a été modifiée. Et lorsque vous les définissez comme transaction, lorsque la première table est modifiée et que la deuxième table est modifiée anormalement et ne peut pas être modifiée, la première table et la deuxième table reviendront à l'état non modifié. C'est ce qu'on appelle l'annulation de la transaction.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!