我不太了解PHP,因为我是安卓开发人员,所以请帮助我。我刚刚尝试使用PHP将XML数据输入到数据库中。我看到了其他例子,但不知道在我的情况下我能做些什么。
XML链接:http://ca.sharmatutorial.com/ws.asmx/GET_Question_ByDate?dtDate=2016-03-17
PHP代码:在这里,我可以定义什么来检索和设置数据库中的数据。我知道下面的代码不正确。请为opt对象和其他对象更正我的for each循环。还请检查我的sql查询。
<!doctype HTML>
<html>
<head>
<?php
header('Content-Type: application/xml; charset=utf-8');
$mysqli = new mysqli ( 'localhost', 'mabhim92', '9993115300', 'gcm_chat');
?>
</head>
<body>
<?php
$xml = simplexml_load_file("http://ca.sharmatutorial.com/ws.asmx/GET_Question_ByDate?dtDate=2016-03-17");
$nodes = new SimpleXMLElement($xml, null, true)
or die("cannot create");
foreach ($nodes->children() as $child)
{
$Ques_id= $child->id;
$Question= $child->text;
$Option_1= $child->opt;
$Option_2= $child->opt;
$Option_3= $child->opt;
$Option_4= $child->opt;
$Answer= $child->opt->ans;
$date= $child->date;
));
$sql = "INSERT INTO feeds (Ques_id, Question, Option_1, Option_2, Option_3, Option_4, Answer, date) VALUES('". $Ques_id."','". $Question."','". $Option_1."','". $Option_2."','". $Option_3."','". $Option_4."','". $Answer."','". $date."')";
mysql_query($sql);
}
?>
</body>
</html>
我的数据库字段:
1个Ques_id=id
2问题=文本
3 Option_1=opt(opts值中的第一个对象)
4 Option_2=opt(opts值中的第二个对象)
5 Option_3=opt(opts值中的第三个对象)
6 Option_4=opt(opts值中的第四个对象)
7答案=(哪个选项是ans=1)
8日期(时间戳)=日期
您使用了mysqli语法,这很好。但在查询执行时,您使用了旧的mysql_*语法,这是错误的。
请参阅此链接:使用PHP 时MySQL与MySQLi
建议:-
1) 您应该检查连接错误以及查询错误 2) 如果您的查询具有外部双引号("),则不需要连接。您只需在php变量
3) 在DB表中添加主键是一种很好的做法。
4) 在body标记而不是header标记中写入连接对象。
5) 始终ON您在开发模式中的错误报告
<!doctype HTML>
<html>
<head>
</head>
<body>
<?php
header('Content-Type: application/xml; charset=utf-8');
$mysqli = new mysqli ( 'localhost', 'mab***', '99931***', 'gcm**');
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %sn", mysqli_connect_error());
exit();
}
$xml = simplexml_load_file("http://ca.sharmatutorial.com/ws.asmx/GET_Question_ByDate?dtDate=2016-03-17");
$nodes = new SimpleXMLElement($xml, null, true) or die("cannot create");
foreach ($nodes->children() as $child)
{
$Ques_id= $child->id;
$Question= $child->text;
$Option_1= $child->opt;
$Option_2= $child->opt;
$Option_3= $child->opt;
$Option_4= $child->opt;
$Answer= $child->opt->ans;
$date= $child->date;
//)); Typo error. No need for this line
$sql = "INSERT INTO feeds (Ques_id, Question, Option_1, Option_2, Option_3, Option_4, Answer, date) VALUES('$Ques_id','$Question','$Option_1','$Option_2','$Option_3','$Option_4','$Answer','$date')";
$res = $mysqli->query($sql);
if (!$res) {
printf("Errormessage: %sn", $mysqli->error);
}
}
$mysqli->close(); // close connection
?>
</body>
</html>
希望它能帮助你:-)