Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,preciso gravar um array no banco mysql,mas gostaria de saber como posso gravar este tipo de campo no mysql?
no mysql existe o campo do tipo array?
vlw
>
Olá amigo.
Você pode gravar normalmente, porém o tipo de campo depende de como tu vai mandar esses arrays para o banco.
Tipo, você pode usar um implode, pra separar os dados com ífen " - " ou vírgula " , " e armazenar no banco de dados, pra pegar os dados, basta dar explode no ítem utilizado, " , " ou " - "
entendeu ? se os dados forem muitos, utilize o campo text.
Estou com a mesma intenção do Flávio Douglas, e de cara pensei na solução que o Alaerte Gabriel sugeriu, contudo, o implode transforma o array em uma única string, e ao passar um array como campo preciso que cada valor individual seja uma string separada, alguém poderia me dar uma luz?
sei que o local não é apropriado, mas gostaria de matar logo 2 coelhos numa cajadada, andei lendo as aulas que o João Batista Neto deixou muito bem organizado pra nós, e gostaria de saber se estou aplicando corretamente (ou mais ou menos correto) o conceito de abstração, abraço!
vou deixar aqui o código:
class.dao.php
<?php
require_once('class.conexao.php');
class Dao{
private $consulta;
private $tabela;
private $campos = array();
private $valores = array();
public function insert(){
$teste = mysql_query("INSERT INTO $this->tabela ($this->campos) VALUES ($this->valores)") or die(mysql_error());
if ($teste){
echo 'Usuário Cadastrado';
}
}
public function select(){
return mysql_query("SELECT * FROM '$tabela'");
}
public function __construct($consulta, $tabela, $campos, $valores){
$this->consulta = $consulta;
$this->tabela = $tabela;
$this->campos = implode(", ", $campos);
$this->valores = implode(", ", $valores);
$sql = new Mysql;
$con = new Conexao($sql);
var_dump($this->consulta, $this->tabela, $this->campos, $this->valores);
switch($consulta){
case 'insert':
$this->insert();
break;
case 'select':
$this->select();
break;
}
}
}
$dao = new dao('insert', 'usuarios', array('nome','email','senha'), array('Nicolas,n@n,n'));
?>
class.conexao.php
<?php
require_once('class.config.php');
class Mysql{
private $result;
public function conecta($h, $u, $p){
return mysql_connect($h, $u, $p) or die(mysql_error());
}
public function seleciona($d){
return mysql_select_db($d) or die(mysql_error());
}
}
class Conexao extends Config{
public function __construct(Mysql $mysql){
$mysql->conecta($this->getHost(), $this->getUser(), $this->getPass());
$mysql->seleciona($this->getDb());
}
}
?>
class.config.php
<?php
class Config{
private $host = 'localhost';
private $user = 'root';
private $pass = '';
private $db = 'db_cefa';
public function getHost(){
return $this->host;
}
public function getUser(){
return $this->user;
}
public function getPass(){
return $this->pass;
}
public function getDb(){
return $this->db;
}
}
?>
Olá amigo.
Você pode gravar normalmente, porém o tipo de campo depende de como tu vai mandar esses arrays para o banco.
Tipo, você pode usar um implode, pra separar os dados com ífen " - " ou vírgula " , " e armazenar no banco de dados, pra pegar os dados, basta dar explode no ítem utilizado, " , " ou " - "
entendeu ? se os dados forem muitos, utilize o campo text.