我有一段时间试图找出我的查询有什么问题,并且无法弄清楚。我搜索了互联网,S.O发现了几个类似的答案,但似乎都没有。
pLease查看受攻击的代码并帮助我确定问题所在。
public function add_page($page=array()){
global $db;
//define page properties
$page_name = $page['page_name'];
$page_title= $page['page_title'];
$page_meta_description = $page['page_meta_description'];
$page_meta_keywords = $page['page_meta_keywords'];
$page_meta_other = $page['page_meta_other'];
$page_meta_other_2= $page['page_meta_other_2'];
$page_url = $page['page_url'];
$page_summary = $page['page_summary'];
$page_content = $page['page_content'];
$page_nav_item = $page['page_nav_item'];
$page_nav_name= $page['page_nav_name'];
$q="INSERT INTO `simplecms`.`pages` (`page_id`, `page_name`, `page_title`, `page_meta_description`, `page_meta_keywords`, `page_meta_other`, `page_other_2`, `page_url`, `page_summary`, `page_content`, `page_nav_item`, `page_nav_name`) VALUES ( ?, ?, ?, ?, ?, ? , ? , ?, ?, ?, ?)";
$query = $db->prepare($q);
$query->bindValue(1,$page_name);
$query->bindValue(2,$page_title);
$query->bindValue(3,$page_meta_description);
$query->bindValue(4,$page_meta_keywords );
$query->bindValue(5,$page_meta_other);
$query->bindValue(6,$page_meta_other_2);
$query->bindValue(7,$page_url );
$query->bindValue(8,$page_summary);
$query->bindValue(9,$page_content );
$query->bindValue(10,$page_nav_item);
$query->bindValue(11,$page_nav_name);
$query->execute();
$r=$query->rowCount();
echo $r;
//VALUES (NULL, 'Page Name', 'Page Title', 'Meta page description', 'google, ooogle ogle, userher', 'dymmy text qq', '', 'google.com', 'Small Summary', 'Ths is the big text', 'Yes', 'Google.com');
/*
$query= $db->prepare("INSERT INTO `pages`(`page_name`, `page_title`, `page_meta_description`, `page_meta_keywords`, `page_meta_other`, `page_other_2`, `page_url`, `page_summary`, `page_content`, `page_nav_item`, `page_nav_name`) VALUES (?,?,?,?,?,?,?,?,?,?,?)");
$query->execute(array(
$page_name,
$page_title,
$page_meta_description,
$page_meta_keywords,
$page_meta_other,
$page_meta_other_2,
$page_url,
$page_summary,
$page_content,
$page_nav_item,
$page_nav_name
));
$query->execute();
$row = $query->rowCount();
echo $row;*/
/*
$query = "INSERT INTO `pages`(
`page_name`,
`page_title`,
`page_meta_description`,
`page_meta_keywords`,
`page_meta_other`,
`page_meta_other_2`,
`page_url`,
`page_summary`,
`page_content`,
`page_nav_item`,
`page_nav_name`
) VALUES(
:name,
:title,
:desctription,
:keywords,
:meta1,
:meta2,
:url,
:summary,
:content,
:navitem,
:navname
)";
//VALUE(?,?,?,?,?,?,?,?,?,?,?)";
$q = $db->prepare($query);
$q->execute(array(
':name' =>$page_name,
':title' =>$page_title,
':desctription' =>$page_meta_description,
':keywords' =>$page_meta_keywords,
':meta1' =>$page_meta_other,
':meta2' =>$page_meta_other_2,
':url' =>$page_url,
':summary' =>$page_summary,
':content' =>$page_content,
':navitem' =>$page_nav_item,
':navname' =>$page_nav_name
));
*/
/*$q->bindValue(':name', $page_name, PDO::PARAM_STR);
$q->bindValue(':title', $page_title, PDO::PARAM_STR);
$q->bindValue(':desctription', $page_meta_description, PDO::PARAM_STR);
$q->bindValue(':keywords', $page_meta_keywords, PDO::PARAM_STR);
$q->bindValue(':meta1', $page_meta_other, PDO::PARAM_STR);
$q->bindValue(':meta2', $page_meta_other_2, PDO::PARAM_STR);
$q->bindValue(':url', $page_url, PDO::PARAM_STR);
$q->bindValue(':summary', $page_summary, PDO::PARAM_STR);
$q->bindValue(':content', $page_content, PDO::PARAM_STR);
$q->bindValue(':navitem', $page_nav_item, PDO::PARAM_STR);
$q->bindValue(':navname', $page_nav_name, PDO::PARAM_STR);
$q->execute();*/
/*$r = $q->rowCount();
if($r<1){
echo "Oops no article is added <pre>";
print_r($page);
echo "</pre>";
}else{
echo $r."Google";
}
*/
}
我已经尝试了几乎所有可以想到的方法。我已经浏览了几个小时的互联网,但是没有用,
在同一个类中,我可以从数据库中选择和获取所有数据,但插入数据库已成为一场噩梦。
请帮忙。
答案 0 :(得分:2)
page_id
缺少 VALUES
。您有12个字段,但有11个占位符和11个bindValue
。
如果page_id
为AUTO_INCREMENT
,请勿将其包含在字段列表中。