escribi una clase que hace la conexion y consultas a la DB en sqlite.
Código PHP:
<?php
class ServidorBaseDatos
{
private $_baseDatos;
private $_descriptor;
private $_resultado;
function __construct($_baseDatos)
{
$this->servidor = $servidor;
$this->usuario = $usuario;
$this->pass = $pass;
$this->_baseDatos = $_baseDatos;
$this->conectarBaseDatos();
}
public function conectarBaseDatos()
{
$this->_descriptor = sqlite_open($this->_baseDatos);
}
public function consulta($consulta)
{
$this->_resultado = sqlite_query($consulta, $this->_descriptor);
}
public function extraerRegistro()
{
if ($fila = sqlite_fetch_array($this->_resultado, SQLITE_ASSOC)){
return $fila;
}else{
return false;
}
}
}
?>
Código PHP:
<?php
require_once('connectSQLite.class.php');
$baseDatos = new ServidorBaseDatos('votaciones.db');
$baseDatos->consulta('create table lenguaje (id_lenguaje INT PRIMARY KEY, lenguaje CHAR(255), votos INT)');
$baseDatos->consulta('insert into lenguaje (lenguaje, votos) values ("PHP", 0)');
$baseDatos->consulta('insert into lenguaje (lenguaje, votos) values ("JSP", 0)');
$baseDatos->consulta('insert into lenguaje (lenguaje, votos) values ("ASP", 0)');
$baseDatos->consulta('insert into lenguaje (lenguaje, votos) values ("COLD FUSION", 0)');
$baseDatos->consulta('select * from lenguaje');
while ($fila = $baseDatos->extraerRegistro()){
echo $fila["lenguaje"].": ".$fila["votos"].'<br>';
}
?>
Código PHP:
<?php
require_once('connectSQLite.class.php');
//Primero comprobamos si tenemos un voto'
$baseDatos = new ServidorBaseDatos('votaciones.db');
//Si hemos votado sumamos el valor al numero de votos almacenado.
if (isset($_POST['voto'])){
$voto = $_POST['voto'];
$baseDatos->consulta('select votos from lenguaje where id_lenguaje = '.$voto);
$numeroVotos = $baseDatos->extraerRegistro();
$numeroVotos = $numeroVotos['votos'];
$numeroVotos++;
$baseDatos->consulta('update lenguaje set votos="$numeroVotos" where id_lenguaje = "$voto"');
}
?>
<html>
<body>
Que lenguaje de programacion prefieres?
<!--Formulario que permite votar -->
<form action = '<?= $PHP_SELF ?>' method = 'post'>
<select name = 'voto'>
<?php
$baseDatos->consulta('select * from lenguaje');
while ($fila = $baseDatos->extraerRegistro()){
$id_lenguaje = $fila['id_lenguaje'];
$lenguaje = $fila['lenguaje'];
echo "<option value=\"$id_lenguaje\">$lenguaje</option>";
}
?>
</select>
<input type="submit" name="Enviar" value="Enviar">
</form>
<table>
<?php
$baseDatos->consulta('select * from lenguaje');
while ($fila = $baseDatos->extraerRegistro()){
$lenguaje = $fila['lenguaje'];
$votos = $fila['votos'];
echo '<tr><td>'.$lenguaje.'</td><td>'.$votos.'votos</td></tr>';
}
?>
</table>
</body>
</html>
Warning: sqlite_query() [function.sqlite-query]: near " ": syntax error in /opt/lampp/htdocs/practicas/graficos/connectSQLite.class.php on line 23
Warning: sqlite_fetch_array() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/practicas/graficos/connectSQLite.class.php on line 28
Warning: sqlite_query() [function.sqlite-query]: attempt to write a readonly database in /opt/lampp/htdocs/practicas/graficos/connectSQLite.class.php on line 23
Sinceramente no encuentro donde me estoy equivocando, podria ser que la clase este mal construida?
Saludos y gracias