Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP/MySQL Inserir valores nulos


Este é um exemplo em que o uso de declarações preparadas realmente poupa alguns problemas.

No MySQL, para inserir um valor nulo, você deve especificá-lo em INSERT tempo ou deixe o campo de fora que requer ramificação adicional:
INSERT INTO table2 (f1, f2)
  VALUES ('String Value', NULL);

No entanto, se você quiser inserir um valor nesse campo, agora você deve ramificar seu código para adicionar as aspas simples:
INSERT INTO table2 (f1, f2)
  VALUES ('String Value', 'String Value');

Declarações preparadas automaticamente fazem isso por você. Eles sabem a diferença entre string(0) "" e null e escreva sua consulta adequadamente:
$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)");
$stmt->bind_param('ss', $field1, $field2);

$field1 = "String Value";
$field2 = null;

$stmt->execute();

Ele escapa de seus campos para você, garante que você não esqueça de vincular um parâmetro. Não há razão para ficar com o mysql extensão. Use mysqli e são declarações preparadas em vez de. Você vai se salvar de um mundo de dor.