Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria de saber como deixar o valor da coluna nulo durante o processo de cadastro.
<?php
class Sql{
public $host, $user, $pass, $query;
public function __construct(){
mysql_connect($this -> host = 'localhost', $this -> user = 'root', $this -> pass = '1234' );
mysql_select_db('cadastro');
}
public function query($qr){
$this -> query = mysql_query($qr);
return $this -> query;
}
public function retornar(){
return $this -> query;
}
}
$sql = new sql;
$nome = $_POST{'nome'};
$login = $_POST{'login'};
$pwd = $_POST{'senha'};
$text = $_POST;
if(empty($nome)){
echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
}elseif(empty($login)){
echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
}elseif(empty($pwd)){
echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
}else{
$query1 = mysql_num_rows(mysql_query("SELECT * FROM USUARIO WHERE LOGIN = '$login'"));
if($query1 == 1){
echo "<script>alert('Usuário já existe.'); history.back();</script>";
}else{
mysql_query("insert into usuario (nome, login, senha, null) values ('$nome','$login','$pwd','$text')");
//echo "<script>alert('Usuário cadastrado com sucesso.');</script>";
echo "<script>location.href='pagina-do-cliente-login.php';</script>";
}
}
?>>
É só passar o valor "NULL" na query, no campo que deve ficar nulo
PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/
Notice: Array to string conversion in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\phpteste1\cadastro.php on line 33
$sql = new sql;
$nome = $_POST{'nome'};
$login = $_POST{'login'};
$pwd = $_POST{'senha'};
$text = $_POST;
if(empty($nome)){
echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
}elseif(empty($login)){
echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
}elseif(empty($pwd)){
echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
}else{
$query1 = mysql_num_rows(mysql_query("SELECT * FROM USUARIO WHERE LOGIN = '$login'"));
if($query1 == 1){
echo "<script>alert('Usuário já existe.'); history.back();</script>";
}else{
mysql_query("insert into usuario (nome, login, senha,'NULL') values ('$nome','$login','$pwd','$text')");
//echo "<script>alert('Usuário cadastrado com sucesso.');</script>";
//echo "<script>location.href='pagina-do-cliente-login.php';</script>";
}
}
?>O erro está aqui:
$text = $_POST;
Você fez $text ser um array.
Creio que o correto seria $_POST['text']
Sobre o NULL, deixe-o fora das aspas:
mysql_query("insert into usuario (nome, login, senha, NULL) ...
Caso contrário, você estará inserindo uma string com o texto NULL em vez de um valor nulo
se entendi bem, sql errada:
>
mysql_query("insert into usuario (nome, login, senha,'NULL') values ('$nome','$login','$pwd','$text')");
verificar sintaxe:
>
se entendi bem, sql errada:
verificar sintaxe:
Cara tem um pequeno problema que vc não prestou muito atenção
vc tem uma coluna chamada "NULL" na sua tabela?
mysql_query("insert into usuario (nome, login, senha,'NULL') values ('$nome','$login','$pwd','$text')");
Não deveria ser assim?
mysql_query("insert into usuario (nome, login, senha, texto) values ('$nome','$login','$pwd','$text')");
e outra, vc estancia a classe "Sql" e só usa a conexão?
por que não usa a função "query"?
public function query($qr){
É só passar o valor "NULL" na query, no campo que deve ficar nulo
PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/