Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sparql查询php的printf数组字符串_Php_Sparql - Fatal编程技术网

sparql查询php的printf数组字符串

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

我想用数组查询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
上出现错误:

没有 致命错误:未捕获的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无法处理数组。。