我遇到了一個很奇怪的問題,我從來沒有見過這樣的錯誤。PHP/MySQL無法插入
這是我的代碼:
<?php
funcion addPref($nome, $uid, $valore){
$SQL = "INSERT INTO preferenze_utenti (idPreferenza, idUtente, value)
VALUES ((SELECT id FROM preferenze WHERE nome = ?), ?, ?)";
$stmt = $GLOBALS["db"]->prepare($SQL);
$stmt->bind_param('sis', $nome, $uid, $valore);
return $stmt->execute() ? true : false;
}
?>
我使用這樣的功能:
addPref("css_animations", 530, "true");
介意"true"
是一個字符串,因爲這臺接受多種類型的數據進去,所以我只是像這樣使用它。
問題是,實際上該函數總是返回true,並且我沒有得到新的db記錄。 我試着直接在PHPMyAdmin中運行查詢並完美工作。 我注意到,我得到了從MySQL這樣的警告:
截斷不正確DOUBLE值: 'css_animations'
我要去哪裏錯了?
表:
CREATE TABLE IF NOT EXISTS `preferenze_utenti` (
`idPreferenza` bigint(20) NOT NULL,
`idUtente` bigint(20) NOT NULL,
`value` varchar(256) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `preferenze` (
`id` bigint(20) NOT NULL,
`nome` char(64) NOT NULL,
`def` varchar(128) NOT NULL COMMENT 'Valore default'
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
向我們展示你的,你的表結構PLS 。 – vaso123 2014-11-06 13:19:21
什麼是preferenze_utenti的表定義? – tjati 2014-11-06 13:19:27
'preferenze'中的列'nome'是什麼類型? – 2014-11-06 13:24:29