mysqli_multi_query (); многочисленные представления

У меня есть сценарий PHP, который готовит 3 различных представления SQL. SQL действителен для всех них. Если я поменяю порядок приведенных ниже утверждений IF, все они будут работать. Если $ratesSQL сначала то и 1) и 2) работают. Если любой из двух других является первым, то работает только 1).

SQL:

$sqlRates = "LOAD XML LOCAL INFILE '/xx/yy/zz/example.xml'
REPLACE
INTO TABLE rates
ROWS IDENTIFIED BY '<row>'";

И то и другое $vixSQL а также $aaaSQL много REPLACE INTO заявления. Пример:

REPLACE INTO aaa (date,value) VALUES ('2016-01-29','4.05'); REPLACE INTO aaa (date,value) VALUES ('2016-01-28','4.07');

Заявления IF:

1) Успешная подача с приведенным ниже. $ rateSQL — это примерно 300 строк данных.

if (mysqli_multi_query($dbc, $ratesSQL)) {
echo "<h3>Rates Load Successful</h3><br>";
} else {
echo "<h3>Rates Load Error</h3><br>";
}

2) Успешная подача. ~ 8000 строк данных.

if (mysqli_multi_query($dbc, $vixSQL)) {
echo "<h3>VIX Load Successful</h3><br>";
} else {
echo "<h3>VIX Load Error</h3><br>";
}

3) Неудачная отправка, ~ 8000 строк данных

if (mysqli_multi_query($dbc, $aaaSQL)) {
echo "<h3>AAA Load Successful</h3><br>";
} else {
echo "<h3>AAA Load Error</h3><br>";
}

$ratesSQL отправка составляет всего около 300 строк данных, а две другие — около 8000. Это количество данных вызывает у меня проблемы? Любые предложения, чтобы обойти это?

КОМБИНИРОВАНИЕ ЗАПРОСОВ НА ОТВЕТ НИЖЕ ПОЗВОЛЯЕТ МНЕ ПОЛУЧИТЬ ВСЕ ЭТО. Все еще озадачиваться, почему отдельные запросы не удалось. ЛЮБАЯ ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ БУДЕТ ЦЕНА

0

Решение

Объедините все ваши запросы и используйте mysqli_multi_query один раз

Примечание: несколько запросов должны быть объединены точкой с запятой

$finalSqlQuery = $sqlRates .';'.$vixSQL.$aaaSQL;

if(mysqli_multi_query($dbc,$finalSqlQuery)){
//Then you can use mysqli_store_result()
do{
if($result = mysqli_store_result($dbc)){
//Note that mysqli_store_result will return a buffer object and false on query error.

print_r($result);/*display and check what is the results of the query if are you sure that the query doesn't have an error just to check the result of the query*/
mysqli_free_result($result);
}

/* print divider */
if (mysqli_more_results($dbc)) {
printf("-----------------\n");
}}while(mysqli_next_result($dbc));
$result = mysqli_store_result($dbc)
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]