Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal alguém me dá uma ajuda com Mysql por favor.
Tenho uma coluna em meu BD que precisaria o seguinte:
Ela não é obrigatória mas se preenchida não poderia ter outras ocorrências dela.
É um campo que ao meu ver seria UNIQUE mas que aceitasse NULL.
@ShadowDLL obrigado pela ajuda, mas então, fazendo por linha de comando ok, porém quando ele vém de um POST e não está preenchido o mysql o assume como 0 e avisa que o campo é duplicado.
Crie uma verificação, segue exemplo:
CÓDIGO
<?php
if ( $_POST ) {
# VERIFICA O POST 'CAMPO' CHAVE
if ( $_POST [ 'chave' ] == 0 ) {
$_POST [ 'chave' ] = NULL;
}
$pdo = new PDO ( 'mysql:host=localhost;dbname=imasters', 'root', '' );
$pdo->setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$stmt = $pdo->prepare ( 'INSERT INTO users (nome, chave) VALUES (?, ?)' );
$stmt->bindValue (1, $_POST [ 'nome' ]);
$stmt->bindValue (2, $_POST [ 'chave' ]);
$stmt->execute ();
if ( $stmt->rowCount () > 0 ) {
$stmt = $pdo->prepare ( 'SELECT * FROM users' );
$stmt->execute ();
$ret = $stmt->fetchAll ( PDO::FETCH_OBJ );
echo "<pre>";
var_dump (
$ret
);
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title> EXAMPLE </title>
</head>
<body>
<form action="#" method="post">
<label>Nome: </label>
<input type="text" name="nome" />
<br />
<label>Chave: </label>
<input type="number" name="chave" />
<br />
<br />
<input type="submit" value="enviar" />
</form>
</body>
</html>@ShadowDLL vlw era uma das opções que eu havia pensado, queria mesmo ver se havia algo dentro do MySql mesmo tipo ignorar o 0. Vlw. Uma procedure ou coisa similar.
Disponível ;)
E sim, existe sim! O SQL tem funções de verificação também, porém acho até mais fácil por PHP rsrsrs
>
14 horas atrás, Cleudiney T Brandão disse:
porém quando ele vém de um POST e não está preenchido o mysql o assume como 0 e avisa que o campo é duplicado.
Se o comando INSERT tiver nulo fica nulo no Banco !
UNIQUE aceita normalmente "parâmetros" nulos em sua coluna,
segue exemplo:
SQL
('Jadson e Judson', 29992), ('Judson e Jadson', NULL),