我不太了解PHP因为我是Android开发人员所以请帮助我。 我只是尝试使用PHP将XML数据输入数据库。我已经看到了其他例子,但在我的案例中我无法做到。
XML链接: http://ca.sharmatutorial.com/ws.asmx/GET_Question_ByDate?dtDate=2016-03-17
PHP代码: 在这里我可以为数据库中的检索和设置数据定义什么。我知道下面的代码不正确。请更正我的每个循环的opt对象和其他也请检查我的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值中的第一个obj)
4 Option_2 = opt(opts值中的第二个obj)
5 Option_3 = opt(opts值中的第三个obj)
6 Option_4 = opt(opts值中的第四个obj)
7答案=(选择ans = 1)
8日期(时间戳)=日期
答案 0 :(得分:0)
您使用了 mysqli 语法,这很好。但是在查询执行时,您使用了旧的 mysql _ * 语法,这是错误的。
请参阅此链接: - MySQL vs MySQLi when using PHP
建议: -
1)您还应该检查连接错误以及查询错误。
2)如果您的查询具有外部双引号(&#34;&#34;),则无需连接。您只需在php变量周围添加单引号。
3)最好在数据库表中添加主键。
4)在body标签中写入连接对象而不是标头标签。
5)在开发模式下始终开启您的错误报告
<!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: %s\n", 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: %s\n", $mysqli->error);
}
}
$mysqli->close(); // close connection
?>
</body>
</html>
希望它会对你有所帮助: - )