EspañolDeutschFrançaisItalianoPortuguêsРусскийΕλληνικά日本語中文(简体)हिन्दी; हिंदीالعربية
既定の言語として設定します。
PF の質問 - フォーラム

、 10 我々 は PHP プログラマを作る MySQL について重大なバグ

ウェブ マスターや SEO  
 
、 10 我々 は PHP プログラマを作る MySQL について重大なバグ

ときにプログラム PHP あなたのアプリケーションにある特定の開始と , 最も論理的な事がであなたをサポートする必要があること、 データベース管理システム 格納および同じに関するすべてのデータを操作するには. PHP の場合, 大きい範囲に使用するシステムは、します。 MySQL.

それは容易ではないです。 固体のデータベースを構築します。, 信頼性の高い, que esté libre de inconsistencias y vulnerabilidades y que, したがって, いずれかに基づく構造を有する、 通常フォーム 最も一般的に使用されます。. それは正常ですので、, como programadores en PHP, caigamos en alguno de los principales errores a la hora de trabajar con MySQL.

 

1. Usar MyISAM en lugar de InnoDB

MyISAM es el motor configurado 既定では en la instalación de MySQL しかし, a menos que aún tengas tu base de datos en desarrollo o tu proyecto sea bastante simple, ES お勧め 使用して、 InnoDB. Éste admite トランザクション, esenciales para la integridad de los datos. さらに, a la hora de insertar o actualizar un registro, solo bloquea a éste, y no a la tabla entera como hace MyISAM, teniendo un efecto positivo sobre el パフォーマンス, sobre todo en las escrituras.

 

2. No usar las funciones adecuadas para MySQL de PHP

PHP 提供します funciones específicas para la conexión y uso de MySQL. Funciones como mysql_connect, mysql_query, … Estas funciones resultaron mejoradas para versiones de PHP igual o superior a la 4.1.3, por lo que es aconsejable usar esta última, 呼び出し MySQLi. Ésta presenta una serie de 利点 como una intefaz orientada a objetos, prevención de ataques de inyección de SQL mediante las preparedStatements, パフォーマンスを向上させる, など.

 

3. No sanear las entradas de usuario

に、 no sanearentradas del usuario y usarlas para crear una sentencia SQL, la cual ejecutaremos sobre la base de datos, estamos dando lugar a una 脆弱性 permitiendo la inyección de código SQL en los campos desde los cuales tomamos dichos valores.

場合, によって , estamos manejando un login de usuario, y al obtener los datos del formulario los asignamos directamente de la siguiente forma:

Si en el campo introdujéramos el valor admin’; –“ (引用符なし), la cadena SQL resultante sería la siguiente:

Con lo que el usuario accedería 直接 sin introducir あらゆる種類の パスワード, además de acceder como administrador, 場合 管理者 fuese el nombre de algún usuario administrador.

 

4. No usar la codificación UTF-8

Utilizar esta codificación evita muchos problemasinternacionalización, ya que debemos tener en cuenta que nuestro sitio web no solamente será accedido desde nuestro propio país, sino desde países cuyos juegos de caracteres difieren mucho de los nuestros.

 

5. Hacerlo todo mediante PHP

Es habitual realizar toda la codificación mediante el lenguaje PHP, incluso aquellas funciones que resultarían mucho más rápidas si las realizara el propio gestor de bases de datos. たとえば, utilizar un ループ en PHP para calcular un promedio, sumando todos los valores de un conjunto de registros, ネイティブの MySQL 関数を使用する代わりに, AVG().

同じ方法で, エンコードの可能性があります。 内部プロシージャと関数 独自のデータベースで, パフォーマンスを優先 グローバルな観点我々 のアプリケーション.

 

6. クエリを最適化しません。

99% PHP アプリケーションのパフォーマンスの問題は、します。 データベースによって引き起こされる. 意識しなければ、単純な 不適切なクエリ それは引き起こすことができる、 ボトルネック 当社の web サイトに, 実行することをお勧めですので、 最適化 相談 重い.

アプリケーションがあると スクリプト サーバーを確認して、 MySQL そしてあなたを与える ヒント para mejorar su rendimiento, 同様、彼らは最適化する必要があります可能なクエリが表示されます。.

 

7. 不適切なデータ型を使用します。

MySQL セットを提供します 様々 なデータ型 (数値, チェーン, 時間, 日付, …). 保存しようとしている場合、 日付, 型を使用します。 あなたを与える o DATETIME, 使用する代わりに、 整数 o 文字列, 多くを行う 複雑です 協議.

よく, 作成する魅力的ですが、 独自のデータ型 としてデータベースに保管 シリアル化された PHP オブジェクト. ただし、データベースの管理が容易になります, あなた できなくなります 簡単に実行します。 検索とクエリ 格納されているデータについて.

 

8. アスタリスクを使用します。 (*) 選択クエリ

アスタリスクを使用することはありません。 今次協議では 選択します。, それがない限り 厳密に いる. 本当に必要な分野の相談を常にやろうと, los demás son recursos gastados 無駄に.

 

9. インデックスを設定しないまたは sobre indexacion

通常, 、 インデックス 選択クエリがその場所を実行する任意の列に適用されます。, 役に立つこと、 インデックスを作成します。 クエリします。 多くのリソースを消費します。 通常使用されているものと.

同じ方法で, 追加 各列のインデックス あなたはそれを行うことができます。 秋のパフォーマンス 彼らがする必要がありますサーバー 再生成 それぞれの挿入またはテーブルの更新.

 

10. バックアップを忘れてください。

信じても信じなくても, データベース 失敗します。, ハード ドライブまたはその他のハードウェアやソフトウェアだけでなく、ことがあります、サーバー、データベースをホストしています。. Web アプリケーションにある場合 重要性, imagina el perder de golpe toda la información sobre el mismo.

これを避けるために, acostumbra a hacer copias de seguridad periódicas, または単に, prográmalas para que se realicen 自動的に.

 

Cómo puedes ver, estos son solo 10 de los principales errores que los programadores en PHP podemos o solemos cometer cuando trabajamos con el gestor de bases de datos MySQL. それを言うまでもないです。, aparte de este, とてもよく知られています。, sistema de bases de datos, あります。 otras soluciones 同じ fiables y buenas, y que también pueden ser opción para cualquiera de los proyectos o aplicativos web que tengamos que desarrollar bajo PHP.

私達にコメントを残すかへの入力、フォーラム
Share on Facebook Tweet about this on Twitter Share on Google+ Pin on Pinterest Share on Reddit Share on VK Share on StumbleUpon Share on Tumblr Share on LinkedIn Email this to someone Print this page

関連記事