我在使用PDO時遇到了一些問題。這一切似乎是正確的,但我得到這個錯誤SQLSTATE [HY000]:一般錯誤:1366錯誤的整數值:
SQLSTATE[HY000]: General error: 1366 Incorrect integer value: ':permissao' for column 'permissao' at row 1\n
下面是打印輸出
$this->nome = $nome;
$this->email = $email;
$salt = $this->generateSalt();
$permissao = 10;
$activo = 0;
#encripta chama a funcao para encriptar a password do utilizador
$this->password = $this->pwdEncript($password, $salt);
$params = array('nome'=>$this->nome,
'email'=> $this->email,
'password'=> $this->password,
'salt'=>$salt,
'permissao'=>$permissao,
'activo'=>$activo);
$sql = "INSERT INTO sys_users(nome,email,password,salt,permissao,activo)
VALUES(':nome',':email',':password',':salt',':permissao',':activo')";
try
{
$sth = $this->db->prepare($sql);
$sth->execute($params);
}
catch(PDOException $e)
{
echo 'Erro ao inserir na base de dados'.$e->getMessage().'\n';
}
Permissao是在MySQL表中的INT的代碼。
很高興爲這一個給予任何幫助;)
$ permissao的價值是什麼? – GordonM
@PeeHaa如果我轉換爲int,我會得到相同的結果。 我更新了代碼。它基本上是從1到10的數字值。 –
我有一個偷偷摸摸的懷疑,它是你在所有參數佔位符周圍引用的引號。由於準備好的語句無論如何都會爲您插入字符串,您不需要它們,這可能會導致您遇到麻煩。 – GordonM