Programacion
jueves, 27 de octubre de 2011
ActiveRecordException: Se esta tratando de ejecutar una operacion maliciosa! (0)
foreach($Productos->find(“estado=’C’ and valor<15000”) as $producto){
3. print $producto->nombre;
4. }
Te encontraras con el error del titulo, debes recordar la sintaxis de find que se explica unas paginas antes:
Descripción: Ejecuta un Select en el motor con los parámetros enviados y devuelve un
Array con los resultados.
Sintaxis:
1. $db->find(string $table, [string $where=”1=1”], [string $fields=”*”],[string $orderBy=”1”]);
entonces debes modificar la linea de codigo de la siguiente forma y te funciona:
public function consultaEstado(){
$db = DbBase::raw_connect();
foreach($db->find("nombre_tabla", "estado='A'") as $producto){
$this->vector2[$i]=$producto["nombre"];// aqui se guarda el resultado en otro vector. solo por probar
$i++;
}
}
como puedes ver se sigue la sitaxis
$db->find(string $table, [string $where"1=1"])//solo hasta aqui, podemos añadir mas.
utilicen el metedo create y no save.
El primero guarda inmediatamente en la base de datos, el segundo requiere de confirmación.
function guardar(){
$Album = new Album();
$Album->id=7;
$Album->nombre="The sound of my spirity";
$Album->fecha = ('2011'-'10'-'26');
$Album->valor=120;
$Album->artista_id=1;
$Album->estado='A';
$Album->create();// ingresa los valores directo en la base de dato.
$Album->save();// ingresa los valores pero despues de actualizar la pagina o confirmar.
CONSULTA_MySql_UTILIZANDO_KUMBIA
Descripción: Ejecuta un Select en el motor con los parametros enviados y devuelve un Array con los resultados.
Sintaxis: 1. $db->find(string $table, [string $where=”1=1”], [string $fields=”*”],[string $orderBy=”1”]);
1.
2. $db = DbBase::raw_connect();
3. foreach($db->find(“nombre_tabla”) as $producto){
4. print $producto[‘nombre_campo_tabla’];
5. } //fin del foreach
6. $db>
close();
7. ?>
si estas tratando de realizar esta consulta desde tu clase_controller y enviarla a tu vista y no te resulta sigue la siguiente intrucciones:
una vez hallas comprendido el manual de kumbia (disponible
:http://www.kumbiaphp.com/blog/manuales-y-descargas/),
debes crear una clase controller, con el codigo descrito arriba,
pero tienes que adicionarle una variable tipo array de la siguiente forma:
$db = DbBase::raw_connect();
foreach($db->find("nombre_tabla") as $key =>$value){
$this->pp[$i]=$value["nombre_campo_tabla"];
$i++;
}
de esta forma almacenaremos un array que luego podemos utilizar en nuestra vista. ten en cuenta que en la vista el array estara disponible con el identificador
pp.
una vez echo esto procedemos en nuestra vista a llamar el array y a visualizar sus valores:
oreach($pp as $v){
echo "vector_pp".$v."
";
}
como te puedes percatar es muy sencillo.
miércoles, 26 de octubre de 2011
KumbiaException: Access denied for user 'root'@'localhost' (using password: NO) (0)
Si empezaste a utilizar kumbia y tu primer (h)error es el este: : KumbiaException: Access denied for user 'root'@'localhost' (using password: NO) (0)
Debes hacer lo siguiente:
- si tienes instalado xampp , dentro del directorio htdocs/debes colocar la carpeta KUMBIA
- dentro del directorio KUMBIA/app/config, hay un archivo .ini que se llama databases : este te mostrara la siguiente informacion:
[development]
host = localhost
username = root
password = 123456
name = test
type = mysql
el host=localhost, por que usas un servidor local
username= root, que es el usuario por defecto y el administrador de la base de datos
por defecto el parametro password= esta vacio,
cuando te sale este error, debes colocarle la clave que colocas al ingresar a la base de datos.
name= test, es el nombre de la base de datos por defecto de mySql donde se supone hacemos todas nuestras pruebas.
si estas usando otra base de datos debes hacer el siguiente cambio:
name="nombre de tu base de datos"
type= es el tipo de base de datos que utilizas.