ARC2 использует две функции: $store->setUp()
, которые CREATE
с TABLE
с и DATABASE
, если необходимо; и query(LOAD…
, подробно в вопросе.
Оказывается, часть setUp()
должна не вызываться в том же сценарии, что и часть load
. По крайней мере, не во время одного и того же исполнения. Решение, которое я выбрал, состояло в том, чтобы сделать два отдельных сценария, один для инициализации базы данных, другой для загрузки данных, но простое комментирование части инициализации, как только это будет сделано, также работает. В любом случае, хитрость заключается в том, чтобы загрузка не происходила сразу после инициализации.
Это происходит потому, что спецификация кодирования SET NAMES utf8
при подключении к БД установлена только после обнаружения сопоставления , для которого MySQL, похоже, не может правильно определить, была ли база данных только что создана. Я сделал запрос на получение исправления.
В качестве дополнительного примечания неэффективно использовать конструкцию вопроса LOAD <path/to/file.rdf
: он будет вычисляться как относительный адрес web , вызывающий сервер для загрузки с себя через сеть. Гораздо эффективнее использовать такую конструкцию, как:
$store->query('LOAD <file://' . dirname(__FILE__) . '/path/to/file.rdf>')