Php mysql准备状态插入问题

Php mysql准备状态插入问题,php,mysql,Php,Mysql,我有一个奇怪的问题与插入station。发生的情况是,如果我只插入一列,它会工作,但任何大于1列的内容都不会被插入,并且不会显示任何错误 这很有效 $db = mysqli new('localhost','root','','db'); $stmt = $db->prepare("insert into test (id) values(?)"); echo $db->error; $stmt->bind_param("s",$id); $stmt->execute()

我有一个奇怪的问题与插入station。发生的情况是,如果我只插入一列,它会工作,但任何大于1列的内容都不会被插入,并且不会显示任何错误

这很有效

$db = mysqli new('localhost','root','','db');
$stmt = $db->prepare("insert into test (id) values(?)");
echo $db->error;
$stmt->bind_param("s",$id);
$stmt->execute();
但不是这个:

$id = 1;
$name = "test";
$stmt = $db->prepare("insert into test (id,name) values(?,?)");
echo $db->error;
$stmt->bind_param("ss",$id, $name);
$stmt->execute();

有人有线索吗?不确定这是否有用,但某些列在“排序规则”选项卡下没有值,而其他列在表中有
latin1\u swedish\u ci
,尝试单独绑定参数,如下所示:

$stmt = $db->prepare("insert into test (id,name) values(:id, :name)");
echo $db->error;
$stmt->bind_param(":id", $id);
$stmt->bind_param(":name", $name);
$stmt->execute();

尝试单独绑定参数,如下所示:

$stmt = $db->prepare("insert into test (id,name) values(:id, :name)");
echo $db->error;
$stmt->bind_param(":id", $id);
$stmt->bind_param(":name", $name);
$stmt->execute();

只是好奇;既然您使用的是面向对象的代码,为什么不使用PDO?您是否尝试过单独插入
name
?语法看起来正确。
$stmt->execute()的返回值是多少呼叫?如果它是
false
,那么
$stmt->error
的值是多少?@Progman它返回false,并且没有错误。..var_dump($db->error)给我字符串(0)“@草莓将尝试看看它是否工作只是好奇;既然您使用的是面向对象的代码,为什么不使用PDO?您是否尝试过单独插入
name
?语法看起来正确。
$stmt->execute()的返回值是多少呼叫?如果它是
false
,那么
$stmt->error
的值是多少?@Progman它返回false,并且没有错误。..var_dump($db->error)给我字符串(0)”@草莓将尝试看看它是否有效