我遇到了一个很奇怪的问题,我从来没有见过这样的错误。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