我想查询SPARQL,但使用数组。如果这样做有效,我想对所有数组进行迭代。
使用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上出错了
无致命错误: Uncaught EasyRdf_Exception: HTTP请求SPARQL查询失败: Error 400:解析错误:105个遇到"105“在第1列.期望:"\ufeff”之一.“基地”。“前缀”“选择”"json““描述”“建造”。“问”在C中:.
发布于 2019-11-14 03:26:42
我不知道为什么,但我认为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}));
}https://stackoverflow.com/questions/58836385
复制相似问题