sparql查询php的printf数组字符串
我想用数组查询SPARQL。如果成功了,我想对所有数组进行迭代 使用sparql查询php的printf数组字符串,php,sparql,Php,Sparql,我想用数组查询SPARQL。如果成功了,我想对所有数组进行迭代 使用sprintf不会对sparql查询产生任何结果: $arrayName = array("Brassica_oleracea_var_italica","Brassica_oleracea_var_botrytis"); $bmni = $sparql->query(sprintf('SELECT DISTINCT ?bmni WHERE { ?bmni kb:namaIlmiah
sprintf
不会对sparql查询产生任何结果:
$arrayName = array("Brassica_oleracea_var_italica","Brassica_oleracea_var_botrytis");
$bmni = $sparql->query(sprintf('SELECT DISTINCT ?bmni WHERE {
?bmni kb:namaIlmiah kp:%s}', $arrayName[0]));
我曾尝试使用vprintf
,但在EasyRdf
上出现错误:
没有
致命错误:未捕获的EasyRdf_异常:SPARQL查询的HTTP请求失败:
错误400:分析错误:105在第1行第1列遇到“105”。正在期待一个“\ufeff”。。。“基地”。。。“前缀”。。。“选择”。。。“json”。。。“描述”。。。“构造”。。。“问”。。。在C中:
我不知道为什么,但我认为
EasyRdf
不能返回数组,所以
我将数组转换为许多变量。而且它起作用了,但效率不高
我愿意接受任何提高效率的建议
谢谢
// array to variable
$var_name = '';
for ($i = 0; $i < count($arrayName); $i++)
{
$var_name = 'file' . $i;
//looping every variable
$$var_name = $arrayName[$i];
${'file' . $i};
}
for ($i=0; $i < count($arrayName); $i++) {
$bmni = $sparql->query(sprintf('SELECT DISTINCT ?bmni WHERE {
?bmni kb:namaIlmiah kp:%s
}', ${'file' . $i}));
}
//数组到变量
$var_name='';
对于($i=0;$iquery(sprintf('SELECT DISTINCT?bmni WHERE{
?bmni kb:namaIlmiah kp:%s
}“,${file'.$i}”);
}
?是否应该使用PHP字符串插值$sparql->query(“选择DISTINCT?bmni,其中{?bmni-kb:namaIlmiah-kp:{$arrayName[0]}”);
-这不起作用吗?@AKSW使用vprintf时会出现相同的错误,我认为EasyRdf无法处理数组。。