将数据插入MySQL时遇到问题。这是错误,我找不到解决方案。 以下是phpmyadmin阵营和某些名字:
PHPMYADMIN - NAME:
Register.php:(<form action="registo.php" method="get">
)
<button type="submit" name="submit">Enviar</button>
</form>
<?php
if(isset($_GET['submit'])){
$date = mysql_real_escape_string($_GET['data']);
$date = date('Y-m-d', strtotime(str_replace('-', '/', $date)));
$inst=mysqli_prepare($connect,"INSERT INTO cliente(email, password, nome, pais, contribuinte, endereco, codpostal, localidade, data_de_nascimento) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
$pw_hash=password_hash($_GET['pass1'], PASSWORD_DEFAULT);
$inst->bind_param("ssssissss", $_GET['email'], $pw_hash, $GET_['nome'], $_GET['pais'], $GET_['n_contribuinte'], $GET_['morada'], $GET_['codpostal'], $GET_['localidade'], $date);
if($inst->execute()==TRUE){
echo '<p>Registo efetuado com sucesso</p>';
}
else print_r($inst);
}
?>
编辑 :( print_r($inst);
)
mysqli_stmt Object
(
[affected_rows] => -1
[insert_id] => 0
[num_rows] => 0
[param_count] => 9
[field_count] => 0
[errno] => 1048
[error] => Column 'nome' cannot be null
[error_list] => Array(
[0] => Array(
[errno] => 1048
[sqlstate] => 23000
[error] => Column 'nome' cannot be null
)
)
[sqlstate] => 23000
[id] => 1
)
但名字是输入字符串。
答案 0 :(得分:1)
从我看到的是您的代码的bind_param
部分中有拼写错误。
你有什么:
$inst->bind_param("ssssissss", $_GET['email'], $pw_hash, $GET_['nome'], $_GET['pais'], $GET_['n_contribuinte'], $GET_['morada'], $GET_['codpostal'], $GET_['localidade'], $date);
您正在呼叫$GET_['nome']
而不是$_GET['nome']
。请注意错误位置的下划线。这就是为什么价值不被吸引的原因。
与$GET_['n_contribuinte']
,$GET_['morada']
,$GET_['codpostal']
和$GET_['localidade']
相同。