Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
51a17fae
Commit
51a17fae
authored
Dec 23, 2014
by
pana1990
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update db-dao.md in guide-es [skip ci]
parent
28fd9167
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
21 deletions
+21
-21
db-dao.md
docs/guide-es/db-dao.md
+21
-21
No files found.
docs/guide-es/db-dao.md
View file @
51a17fae
...
@@ -20,7 +20,7 @@ De forma predeterminada, Yii soporta los siguientes DBMS (Sistemas de Gestión d
...
@@ -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 200
5
o superior.
-
[
MSSQL
](
https://www.microsoft.com/en-us/sqlserver/default.aspx
)
: versión 200
8
o superior.
Configuración
Configuración
-------------
-------------
...
@@ -114,8 +114,8 @@ $connection = new \yii\db\Connection([
...
@@ -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 [
...
@@ -135,7 +135,7 @@ return [
];
];
```
```
Ejecución de Consultas SQL B
a
sicas
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();
...
@@ -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 e
ntrecomillar adecuadamente el nombre de la tabla y de las columnas que se usen en la consulta, y solo se
gestionar e
l 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
...
@@ -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();
...
@@ -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 [
...
@@ -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 {
...
@@ -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 espec
i
fico cuando se empieza una transacción:
de aislamiento espec
í
fico cuando se empieza una transacción:
```
php
```
php
$transaction = $connection->beginTransaction(
\y
ii
\d
b
\T
ransaction::REPEATABLE_READ);
$transaction = $connection->beginTransaction(
\y
ii
\d
b
\T
ransaction::REPEATABLE_READ);
...
@@ -379,7 +379,7 @@ conflictos de configuración. En este momento se ven afectados los DBMS MSSQL y
...
@@ -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
R
e
plicas 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:
...
@@ -406,7 +406,7 @@ el componente [[yii\db\Connection]] como se muestra a continuación:
'username' => 'slave',
'username' => 'slave',
'password' => '',
'password' => '',
'attributes' => [
'attributes' => [
// u
se a smaller connection timeout
// u
tiliza 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:
...
@@ -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 usar
a 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();
...
@@ -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 intentar
a 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
...
@@ -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' => [
// u
se a smaller connection timeout
// u
tilizar 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
...
@@ -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' => [
// u
se a smaller connection timeout
// u
tilizar 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.
...
@@ -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]].
...
@@ -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 b
asicas, [[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:
...
@@ -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
// CREA
TE TABLE
// CREA
R TABLA
$connection->createCommand()->createTable('post',
[
$connection->createCommand()->createTable('post',
[
'id' => 'pk',
'id' => 'pk',
'title' => 'string',
'title' => 'string',
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment