我一直在尝试使用pdo将一些标签插入到表中,但无济于事。
我有一个名为Tag的php数组。
标签数组中的样本数据如下
tag[] = [[a,b,c,d,e],[f,g,h,i,j]]
使用下面的for循环我可以将其转换为(1,'a','b','c','e',0),(1,'f','g',' H”, 'I',0)
$value="";
$value .= "($postid,";
for($i=0;$i<sizeof($tag);$i++)
{
$value .="'$tag[$i]'";
if($i + 1 == $sizeof($tag){
$value .=")";
}else{
$value .="),";
}
}
准备并插入表格如下
$inserttagquery = "insert Into tagtable ( postid, desc, b, u, toppos,leftpos ,ver) values :value";
$queryinserttag = $conn->prepare($inserttagquery);
$queryinserttag->execute(array('value'=>$value));
$insertedtag = $queryinserttag->rowCount();
但是,这似乎不起作用。 $ insertedtag不返回任何值。
答案 0 :(得分:0)
你的SQL完全错了。您在字段列表中将6个字段 AND 设置为常量值,然后仅提供一个SINGLE占位符来为这些字段提供值。
0
是一个扁平的语法错误和无效的字段名称。您的查询应该是:
INSERT INTO tagtable (postid, desc, b, u, etc...)
VALUES (:postid, :desc, :b, :u, etc...)
然后为每个placehodler提供INDIVIDUAL值:
$stmt->execute(array($postid, $desc, $b, $u, etc...));
正如所写,并忽略所有其他问题,您的查询会尝试将您的(1, 'f', 'g', etc..)
字符串推送到postid
字段。