el otro dia me preguntaron como podria llamar al constructor de la clase padre desde una clase hija, aparte de como poder inicializar las variables de la clase padre, e hice un pequeño ejemplo que quisiera compartir:
// clase padre
class config {
var $var1;
var $var2;
// funcion constructor
function config( $var11, $var12 ){
$this->var1 = $var11;
$this->var2 = $var12;
}
}
class db extends config{
function db($somevar1, $somevar2){
$this->config($somevar1, $somevar2);
}
}
class Usuario extends db{
funcion Usuario($othervar1, $othervar2){
$this->db($othervar1, $othervar2);
}
}
//
// codigo
//
$usuario = new Usuario($finalvar1, $finalvar2)
saludos...
Saturday, July 14, 2007
Friday, July 06, 2007
charset y collation en mysql
y pues .. ahora tenia una duda con respecto a estos dos terminos q mysql usa siempre, y es que en mysql, los valores por defecto son:
charset : latin1 (conjunto de carateres)
collatIon: latin_swedish_ci (conjunto de reglas)
lo cual significa que el universo de caracteres disponibles para este mysql son los q pertenecen a latin1 y que el conjunto de reglas para su gestion (mas q todo a la hora de comparar cadenas) es latin_swedish_ci.
collation tiene una nomenclatura:
charset_nameCollation_xx
donde:
"charset" puede ser: latin1, utf8, ascii, etc...
"nameCollation" puede ser: german1, swedish, general, spanish, etc...
"xx" puede ser: "ci" si no distingue entre may. y minusculas, "cs" si distingue, "bin" de tipo binario.
y q es el latin1, pos no es mas q el: ISO-8859-1, el q tiene el conjunto de caracteres pertenecientes a la mayoria de paises de europa occidental, donde ovbiamente esta el español.
pero mi curiosidad iba un poco mas alla, dado q trabajando en con esta collation, al transportar los datos, las ñ y los acentos eran cambiados por caracteres extraños...
hice una prueba con una db local, la cual hice un backup, borre y restaure... y todo parecia normal, luego me di cuenta q el detalle era q cuando transportaba los archivos, tenia q hacer demostraciones en una pc con windows, y luego la restaurarlo en una pc con linux, y es alli el problema
parece q al generar un backup con linux y correrlo en una pc con windows, no era del todo compatible.
conclusion: windows sucks !!!!!
jejeje xD
charset : latin1 (conjunto de carateres)
collatIon: latin_swedish_ci (conjunto de reglas)
lo cual significa que el universo de caracteres disponibles para este mysql son los q pertenecen a latin1 y que el conjunto de reglas para su gestion (mas q todo a la hora de comparar cadenas) es latin_swedish_ci.
collation tiene una nomenclatura:
charset_nameCollation_xx
donde:
"charset" puede ser: latin1, utf8, ascii, etc...
"nameCollation" puede ser: german1, swedish, general, spanish, etc...
"xx" puede ser: "ci" si no distingue entre may. y minusculas, "cs" si distingue, "bin" de tipo binario.
y q es el latin1, pos no es mas q el: ISO-8859-1, el q tiene el conjunto de caracteres pertenecientes a la mayoria de paises de europa occidental, donde ovbiamente esta el español.
pero mi curiosidad iba un poco mas alla, dado q trabajando en con esta collation, al transportar los datos, las ñ y los acentos eran cambiados por caracteres extraños...
hice una prueba con una db local, la cual hice un backup, borre y restaure... y todo parecia normal, luego me di cuenta q el detalle era q cuando transportaba los archivos, tenia q hacer demostraciones en una pc con windows, y luego la restaurarlo en una pc con linux, y es alli el problema
parece q al generar un backup con linux y correrlo en una pc con windows, no era del todo compatible.
conclusion: windows sucks !!!!!
jejeje xD
Monday, July 02, 2007
problema de mysql en red
el otro dia tuve q solucionar un problema q me llamo la atencion de mysql, y es que pensaba q con solo dar la ip del servidor a una maquina clinte sobre windows, su usuario y pass era todo
usar mysqladministrator:
host: nro_ip_servidor
port: 3306
user: nameuser
pass: ********
tambien probe desde consola:
mysql -h nro_ip_servidor -u nameuser -p
y mi sorpresa... error!! :S
que paso ??
luego de un rato de buscar en la red, alabado sea san google xD, encontre la solucion, en el archivo de configuracion de mysql, q normalmente en las distribuciones derivadas de debian es /etc/mysql/my.cnf, hay una parte q debemos desabilitar, por defecto esta:
bind-address = 127.0.0.1
hay q colocar
# bind-address = 127.0.0.1
parece q por defeto, mysql no te permite trabajar en red, por seguridad, una vez q comentamos este detalle, ya podemos trabajar en red sin problemas.
ojo: hay q tener en cuenta la seguridad... no olvidar, estamos hablando de un servidor para desarrollo, no para produccion.
saludos xD
usar mysqladministrator:
host: nro_ip_servidor
port: 3306
user: nameuser
pass: ********
tambien probe desde consola:
mysql -h nro_ip_servidor -u nameuser -p
y mi sorpresa... error!! :S
que paso ??
luego de un rato de buscar en la red, alabado sea san google xD, encontre la solucion, en el archivo de configuracion de mysql, q normalmente en las distribuciones derivadas de debian es /etc/mysql/my.cnf, hay una parte q debemos desabilitar, por defecto esta:
bind-address = 127.0.0.1
hay q colocar
# bind-address = 127.0.0.1
parece q por defeto, mysql no te permite trabajar en red, por seguridad, una vez q comentamos este detalle, ya podemos trabajar en red sin problemas.
ojo: hay q tener en cuenta la seguridad... no olvidar, estamos hablando de un servidor para desarrollo, no para produccion.
saludos xD
velocidad de mysql en red
y bueeeno, luego de sufrir algunas cosas con la pc del trabajo, decidi una cosa...
FORMATEAR !!!
sist. operativo a colocar: xubuntu... yeah !!!
y pos luego de eso... todo bien... instalar con sinaptic apache, php y mysql...
hecho...
descargar y configurar phpmyadmin...
hecho...
listo, mi pc esta lista para desarrollo y para q sirva de servidor de DB para pruebas
de las otras pc de la oficina... (tienen windows ps... q mas esperan??)
antes de formatear saque un backup de la DB de pruebas, y ahora a restauralas...
mysql -u root -p universidad < universidad.sql
hecho...
luego creacion de los usuarios q tenia la DB
hecho...
fijo mi ip estatico
hecho...
les doy a todos el ip, con sus cuentas y sus password
hecho...
phpmyadmin funciona bien
hay un par de aplicaciones q hacen las pruebas localmente, pero usando la DB remota, en este caso, mi pc
PROBLEMA ?
pues el tiempo de respuesta es... lento... pareciera q estuviera en internet con modem!!!
y supuestamente estamos en la misma red :S
buscando en internet... en /etc/mysql/my.cnf, agregar...
###############
[mysqld]
.....
......
skip-name-resolve
###############
para q resolver nombres de DNS si solo estamos trabajando en la red local?
y ya... ahora si todo ok !!!
espero q esto pueda servir a alguien.
Nota completa: how to optimize mysql response time
FORMATEAR !!!
sist. operativo a colocar: xubuntu... yeah !!!
y pos luego de eso... todo bien... instalar con sinaptic apache, php y mysql...
hecho...
descargar y configurar phpmyadmin...
hecho...
listo, mi pc esta lista para desarrollo y para q sirva de servidor de DB para pruebas
de las otras pc de la oficina... (tienen windows ps... q mas esperan??)
antes de formatear saque un backup de la DB de pruebas, y ahora a restauralas...
mysql -u root -p universidad < universidad.sql
hecho...
luego creacion de los usuarios q tenia la DB
hecho...
fijo mi ip estatico
hecho...
les doy a todos el ip, con sus cuentas y sus password
hecho...
phpmyadmin funciona bien
hay un par de aplicaciones q hacen las pruebas localmente, pero usando la DB remota, en este caso, mi pc
PROBLEMA ?
pues el tiempo de respuesta es... lento... pareciera q estuviera en internet con modem!!!
y supuestamente estamos en la misma red :S
buscando en internet... en /etc/mysql/my.cnf, agregar...
###############
[mysqld]
.....
......
skip-name-resolve
###############
para q resolver nombres de DNS si solo estamos trabajando en la red local?
y ya... ahora si todo ok !!!
espero q esto pueda servir a alguien.
Nota completa: how to optimize mysql response time
Subscribe to:
Posts (Atom)