mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	Update db-dao.md in guide-es [skip ci]
This commit is contained in:
		@ -20,7 +20,7 @@ De forma predeterminada, Yii soporta los siguientes DBMS (Sistemas de Gestión d
 | 
				
			|||||||
  [bug](http://jira.cubrid.org/browse/APIS-658) en la extensión PDO de cubrid, los valores entrecomillados no
 | 
					  [bug](http://jira.cubrid.org/browse/APIS-658) en la extensión PDO de cubrid, los valores entrecomillados no
 | 
				
			||||||
  funcionarán, por lo que se necesita CUBRID 9.3 tanto para el cliente como para el servidor)
 | 
					  funcionarán, por lo que se necesita CUBRID 9.3 tanto para el cliente como para el servidor)
 | 
				
			||||||
- [Oracle](http://www.oracle.com/us/products/database/overview/index.html)
 | 
					- [Oracle](http://www.oracle.com/us/products/database/overview/index.html)
 | 
				
			||||||
- [MSSQL](https://www.microsoft.com/en-us/sqlserver/default.aspx): versión 2005 o superior.
 | 
					- [MSSQL](https://www.microsoft.com/en-us/sqlserver/default.aspx): versión 2008 o superior.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Configuración
 | 
					Configuración
 | 
				
			||||||
-------------
 | 
					-------------
 | 
				
			||||||
@ -114,8 +114,8 @@ $connection = new \yii\db\Connection([
 | 
				
			|||||||
$connection->open();
 | 
					$connection->open();
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> Tip: Si se necesita ejecutar una consulta SQL inmediatamente después de establecer la conexión 
 | 
					> Consejo: Si se necesita ejecutar una consulta SQL inmediatamente después de establecer la conexión
 | 
				
			||||||
  (p. ej. para establecer la zona horaria (timezone) o juego de caracteres), se puede añadir el siguiente código en el 
 | 
					  (ej. para establecer la zona horaria (timezone) o el juego de caracteres), se puede añadir el siguiente código en el
 | 
				
			||||||
  archivo de configuración de la aplicación:
 | 
					  archivo de configuración de la aplicación:
 | 
				
			||||||
>
 | 
					>
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
@ -135,7 +135,7 @@ return [
 | 
				
			|||||||
];
 | 
					];
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Ejecución de Consultas SQL Basicas
 | 
					Ejecución de Consultas SQL Básicas
 | 
				
			||||||
----------------------------------
 | 
					----------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Una vez instanciada una conexión a la base de datos, se pueden ejecutar consultas SQL usando [[yii\db\Command]].
 | 
					Una vez instanciada una conexión a la base de datos, se pueden ejecutar consultas SQL usando [[yii\db\Command]].
 | 
				
			||||||
@ -180,7 +180,7 @@ $command->execute();
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
De forma alternativa, se pueden usar los métodos `insert`, `update`, y `delete`. Estos métodos se encargarán de
 | 
					De forma alternativa, se pueden usar los métodos `insert`, `update`, y `delete`. Estos métodos se encargarán de
 | 
				
			||||||
gestionar entrecomillar adecuadamente el nombre de la tabla y de las columnas que se usen en la consulta, y solo se 
 | 
					gestionar el entrecomillado de los nombres de la tablas y de las columnas que se usen en la consulta, y solo se
 | 
				
			||||||
tendrá que proporcionar los valores necesarios.
 | 
					tendrá que proporcionar los valores necesarios.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[Se tiene que poner el enlace de documentación aquí.]]
 | 
					[[Se tiene que poner el enlace de documentación aquí.]]
 | 
				
			||||||
@ -206,10 +206,10 @@ $connection->createCommand()->update('user', ['status' => 1], 'age > 30')->execu
 | 
				
			|||||||
$connection->createCommand()->delete('user', 'status = 0')->execute();
 | 
					$connection->createCommand()->delete('user', 'status = 0')->execute();
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Entrecomillado de Nombre de Tablas y Columnas
 | 
					Entrecomillado de los Nombres de las Tablas y las Columnas <a name="quoting-table-and-column-names"></a>
 | 
				
			||||||
---------------------------------------------
 | 
					----------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Para hacer que los nombres de columnas y tablas sean seguros para usarse en consultas, se puede utilizar Yii 
 | 
					Para hacer que los nombres de las columnas y las tablas sean seguros para usarse en las consultas, se puede utilizar Yii
 | 
				
			||||||
adecuadamente para que los entrecomille:
 | 
					adecuadamente para que los entrecomille:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
@ -220,7 +220,7 @@ $rowCount = $connection->createCommand($sql)->queryScalar();
 | 
				
			|||||||
En el código anterior, se convertirá `[[$column]]` a un nombre de columna debidamente entrecomillado, mientras que se
 | 
					En el código anterior, se convertirá `[[$column]]` a un nombre de columna debidamente entrecomillado, mientras que se
 | 
				
			||||||
convertirá `{{table}}` a un nombre de tabla debidamente entrecomillado.
 | 
					convertirá `{{table}}` a un nombre de tabla debidamente entrecomillado.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Hay una variante especial de esta sintaxis especifica para que los nombres de tablas: `{{%Y}}` añade automáticamente 
 | 
					Hay una variante especial de esta sintaxis especifica para que los nombres de las tablas: `{{%Y}}` añade automáticamente
 | 
				
			||||||
el prefijo de la tabla de la aplicación para proporcionar un valor, si se ha establecido un prefijo de tabla:
 | 
					el prefijo de la tabla de la aplicación para proporcionar un valor, si se ha establecido un prefijo de tabla:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
@ -244,7 +244,7 @@ return [
 | 
				
			|||||||
];
 | 
					];
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
La alternativa es entrecomillar los nombres de tabla y columna manualmente usando 
 | 
					La alternativa es entrecomillar los nombres de las tablas y las columnas manualmente usando
 | 
				
			||||||
[[yii\db\Connection::quoteTableName()]] y [[yii\db\Connection::quoteColumnName()]]:
 | 
					[[yii\db\Connection::quoteTableName()]] y [[yii\db\Connection::quoteColumnName()]]:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
@ -342,12 +342,12 @@ try {
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Tenga en cuanta que el DBMS debe soportar Puntos de Registro (Savepoints) para que funcionen correctamente. El código
 | 
					Tenga en cuanta que el DBMS debe soportar Puntos de Registro (Savepoints) para que funcionen correctamente. El código
 | 
				
			||||||
anterior, trabajará con cualquier DBMS pero las sólo se garantizarán las transacciones que se ejecuten bajo un DBMS 
 | 
					anterior, trabajará con cualquier DBMS pero sólo se garantizarán las transacciones que se ejecuten bajo un DBMS
 | 
				
			||||||
que las soporte.
 | 
					que las soporte.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Yii también soporta la configuración de [niveles de aislamiento] en las transacciones. Cuando empiece una transacción
 | 
					Yii también soporta la configuración de [niveles de aislamiento] en las transacciones. Cuando empiece una transacción
 | 
				
			||||||
se ejecutará con el nivel predeterminado de aislamiento definido por la base de datos. Se puede especificar un nivel
 | 
					se ejecutará con el nivel predeterminado de aislamiento definido por la base de datos. Se puede especificar un nivel
 | 
				
			||||||
de aislamiento especifico cuando se empieza una transacción:
 | 
					de aislamiento específico cuando se empieza una transacción:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
$transaction = $connection->beginTransaction(\yii\db\Transaction::REPEATABLE_READ);
 | 
					$transaction = $connection->beginTransaction(\yii\db\Transaction::REPEATABLE_READ);
 | 
				
			||||||
@ -379,7 +379,7 @@ conflictos de configuración. En este momento se ven afectados los DBMS MSSQL y
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
[isolation levels]: http://en.wikipedia.org/wiki/Isolation_%28database_systems%29#Isolation_levels
 | 
					[isolation levels]: http://en.wikipedia.org/wiki/Isolation_%28database_systems%29#Isolation_levels
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Replicas y División Lectura-Escritura
 | 
					Réplicas y División Lectura-Escritura
 | 
				
			||||||
-------------------------------------
 | 
					-------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Muchos DBMS soportan
 | 
					Muchos DBMS soportan
 | 
				
			||||||
@ -406,7 +406,7 @@ el componente [[yii\db\Connection]] como se muestra a continuación:
 | 
				
			|||||||
        'username' => 'slave',
 | 
					        'username' => 'slave',
 | 
				
			||||||
        'password' => '',
 | 
					        'password' => '',
 | 
				
			||||||
        'attributes' => [
 | 
					        'attributes' => [
 | 
				
			||||||
            // use a smaller connection timeout
 | 
					            // utiliza un tiempo de espera de conexión más pequeña
 | 
				
			||||||
            PDO::ATTR_TIMEOUT => 10,
 | 
					            PDO::ATTR_TIMEOUT => 10,
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
@ -422,7 +422,7 @@ el componente [[yii\db\Connection]] como se muestra a continuación:
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
La configuración anterior especifica una configuración con un único maestro y múltiples esclavos. Uno de los esclavos
 | 
					La configuración anterior especifica una configuración con un único maestro y múltiples esclavos. Uno de los esclavos
 | 
				
			||||||
se conectará y se usará para ejecutar consultas de lectura mientras que el maestro se usara para realizar consultas de 
 | 
					se conectará y se usará para ejecutar consultas de lectura mientras que el maestro se usará para realizar consultas de
 | 
				
			||||||
escritura. De este modo la división de lectura-escritura se logra automáticamente con esta configuración, Por ejemplo,
 | 
					escritura. De este modo la división de lectura-escritura se logra automáticamente con esta configuración, Por ejemplo,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
@ -442,7 +442,7 @@ $db->createCommand("UPDATE user SET username='demo' WHERE id=1")->execute();
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
El componente `Connection` soporta el balanceo de carga y la conmutación de errores entre esclavos. Cuando se realiza
 | 
					El componente `Connection` soporta el balanceo de carga y la conmutación de errores entre esclavos. Cuando se realiza
 | 
				
			||||||
una consulta de lectura por primera vez, el componente `Connection` elegirá un esclavo aleatorio e intentará realizar
 | 
					una consulta de lectura por primera vez, el componente `Connection` elegirá un esclavo aleatorio e intentará realizar
 | 
				
			||||||
una conexión a este. Si está "muerto", se intentara con otro. Si no está disponible ningún esclavo, se conectará al 
 | 
					una conexión a este. Si está "muerto", se intentará con otro. Si no está disponible ningún esclavo, se conectará al
 | 
				
			||||||
maestro. Configurando una [[yii\db\Connection::serverStatusCache|server status cache]], se recordarán los servidores
 | 
					maestro. Configurando una [[yii\db\Connection::serverStatusCache|server status cache]], se recordarán los servidores
 | 
				
			||||||
"muertos" por lo que no se intentará volver a conectar a ellos durante
 | 
					"muertos" por lo que no se intentará volver a conectar a ellos durante
 | 
				
			||||||
[[yii\db\Connection::serverRetryInterval|certain period of time]].
 | 
					[[yii\db\Connection::serverRetryInterval|certain period of time]].
 | 
				
			||||||
@ -462,7 +462,7 @@ También se pueden configurar múltiples parámetros para múltiples esclavos. P
 | 
				
			|||||||
        'username' => 'master',
 | 
					        'username' => 'master',
 | 
				
			||||||
        'password' => '',
 | 
					        'password' => '',
 | 
				
			||||||
        'attributes' => [
 | 
					        'attributes' => [
 | 
				
			||||||
            // use a smaller connection timeout
 | 
					            // utilizar un tiempo de espera de conexión más pequeña
 | 
				
			||||||
            PDO::ATTR_TIMEOUT => 10,
 | 
					            PDO::ATTR_TIMEOUT => 10,
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
@ -478,7 +478,7 @@ También se pueden configurar múltiples parámetros para múltiples esclavos. P
 | 
				
			|||||||
        'username' => 'slave',
 | 
					        'username' => 'slave',
 | 
				
			||||||
        'password' => '',
 | 
					        'password' => '',
 | 
				
			||||||
        'attributes' => [
 | 
					        'attributes' => [
 | 
				
			||||||
            // use a smaller connection timeout
 | 
					            // utilizar un tiempo de espera de conexión más pequeña
 | 
				
			||||||
            PDO::ATTR_TIMEOUT => 10,
 | 
					            PDO::ATTR_TIMEOUT => 10,
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
@ -499,7 +499,7 @@ cuando no se encuentra ningún maestro disponible se lanza una excepción.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
> Nota: cuando se usa la propiedad [[yii\db\Connection::masters|masters]] para configurar uno o múltiples maestros, se
 | 
					> Nota: cuando se usa la propiedad [[yii\db\Connection::masters|masters]] para configurar uno o múltiples maestros, se
 | 
				
			||||||
  ignorarán todas las otras propiedades que especifiquen una conexión de base de datos
 | 
					  ignorarán todas las otras propiedades que especifiquen una conexión de base de datos
 | 
				
			||||||
  (p. ej. `dsn`, `username`, `password`), junto con el mismo objeto `Connection`.
 | 
					  (ej. `dsn`, `username`, `password`), junto con el mismo objeto `Connection`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Las conexiones usan la conexión de maestro de forma predeterminada. Y todas las operaciones de BBDD que estén dentro
 | 
					Las conexiones usan la conexión de maestro de forma predeterminada. Y todas las operaciones de BBDD que estén dentro
 | 
				
			||||||
de una transacción, usaran la conexión de maestro. Por ejemplo,
 | 
					de una transacción, usaran la conexión de maestro. Por ejemplo,
 | 
				
			||||||
@ -560,7 +560,7 @@ Para hacer referencia al esquema entero, se puede revisar [[yii\db\Schema]].
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
### Modificación de esquemas
 | 
					### Modificación de esquemas
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Aparte de consultas SQL basicas, [[yii\db\Command]] contiene un conjunto de métodos que permiten modificar el esquema 
 | 
					Aparte de consultas SQL básicas, [[yii\db\Command]] contiene un conjunto de métodos que permiten modificar el esquema
 | 
				
			||||||
de la base de datos:
 | 
					de la base de datos:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- createTable, renameTable, dropTable, truncateTable
 | 
					- createTable, renameTable, dropTable, truncateTable
 | 
				
			||||||
@ -572,7 +572,7 @@ de la base de datos:
 | 
				
			|||||||
Que pueden usarse como se muestra a continuación:
 | 
					Que pueden usarse como se muestra a continuación:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					```php
 | 
				
			||||||
// CREATE TABLE
 | 
					// CREAR TABLA
 | 
				
			||||||
$connection->createCommand()->createTable('post', [
 | 
					$connection->createCommand()->createTable('post', [
 | 
				
			||||||
    'id' => 'pk',
 | 
					    'id' => 'pk',
 | 
				
			||||||
    'title' => 'string',
 | 
					    'title' => 'string',
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user