Из руководства : mysqli_multi_query()
возвращает bool
, указывающий на успех.
Чтобы получить набор результатов из первого запроса, вы можете использовать mysqli_use_result () или mysqli_store_result (). Все последующие результаты запроса могут быть обработаны с помощью mysqli_more_results () и mysqli_next_result ().
blockquote>Вот функция, которая возвращает последний результат многопроцесса:
function mysqli_last_result($link) { while (mysqli_more_results($link)) { mysqli_use_result($link); mysqli_next_result($link); } return mysqli_store_result($link); }
Использование:
$link = mysqli_connect(); $query = "SELECT 1;"; $query .= "SELECT 2;"; $query .= "SELECT 3"; mysqli_multi_query($link, $query); $result = mysqli_last_result($link); $row = $result->fetch_row(); echo $row[0]; // prints "3" $result->free(); mysqli_close($link);
Вот расшифровка стенограммы, показывающая немного больше о природе проблемы, и как зафиксировать ее с Ubuntu 16.04. Заметьте что даже при том, что file
отчеты, "динамично связанные", ldd
отчеты "не динамический исполняемый файл".
$ ./myprogram
bash: myprogram: No such file or directory
$ file myprogram
myprogram: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.5, not stripped
$ ldd myprogram
not a dynamic executable
, После того как Вы устанавливаете libc6:i386, вещи начинают улучшаться...
$ sudo apt-get install libc6:i386 # the initial fix
...
$ ldd myprogram
linux-gate.so.1 => (0xf77fd000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7626000)
/lib/ld-linux.so.2 (0x56578000)
$ ./myprogram
myprogram: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Для завершения задания Вы, возможно, должны определить и установить дополнительные библиотеки по одному...
$ sudo apt-get install libstdc++6:i386 ## may require various additional libs
$ ./myprogram
... works correctly ...
я не знаю, существует ли систематический способ определить корректные библиотеки для установки. Существует немного догадок, отображающих сообщения об ошибках для упаковки имен (заполнение клавишей Tab помогает).
Следуют этому ответу, только если вывод file file-name
шоу,
file-name: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped
Для выполнения исполняемого файла на 32 бита в мультидуге на 64 бита система Ubuntu необходимо добавить i386
архитектура, и также необходимо установить libc6:i386
, libncurses5:i386
, libstdc++6:i386
эти три пакета библиотеки.
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
./file-name
Путем установки deb для 32 битов я понял, что отсутствовал, некоторые библиотеки (в дополнение к ia32-освобождает и libc6). Я сначала решил эту проблему путем предоставления этой команды:
sudo apt-get install -f
Затем я получил другую ошибку:
Message: SDL_GL_LoadLibrary
Error: Failed loading libGL.so.1
, Очевидно, эти библиотеки были правильно установлены. Без того, чтобы сообщать подробности я должен был связать библиотеки вручную. Я понял затем, что это могло также более легкое решение посредством Синаптической установки следующие пакеты:
libgl1-mesa-glx:i386
libgl1-mesa-dri: i386.
После этого следующей проблемой был черный экран при проигрывании, который я решил путем замены исполняемого файла в/Shank/bin с этим: http://treefort.icculus.org/smb/smb-linux-mesa-hotfix-test.tar.bz2 .
я надеюсь, что это будет полезно для кого-то. Если Вы нуждаетесь в большем количестве помощи или большем количестве деталей, не стесняйтесь связываться со мной.
Вы, вероятно, пытаетесь выполнить 32-разрядный двоичный файл в 64-разрядной системе, которой не установили 32-разрядную поддержку.
существует три случая, где можно получить сообщение “No такой файл или directory”:
file shank-linux-120720110-1-bin
отображает что-то как 32-разрядный исполняемый файл LSB “ELF †¦ ”), и все же когда Вы пытаетесь выполнить его, Вам говорят, что файл не существует. сообщение об ошибке в этом последнем случае по общему признанию сбивает с толку. То, что это говорит Вам, - то, что ключевой компонент среды выполнения, необходимой для запущения программы, отсутствует. К сожалению, канал, через который об ошибке сообщают только, имеет пространство для кода ошибки а не для этой дополнительной информации, что это - действительно среда выполнения, это виновато. Если Вы хотите техническую версию этого объяснения, читайте Получение сообщения “Not found” при выполнении 32-разрядного двоичного файла в 64-разрядной системе .
Эти file
команда скажет Вам, каков этот двоичный файл. За немногим исключением можно только выполнить двоичный файл для архитектуры процессора, для которой релиз Ubuntu. Основное исключение - то, что можно работать 32-разрядный (x86, иначе IA32) двоичные файлы на 64-разрядном (amd64, иначе x86_64) системы.
В Ubuntu до 11,04, для выполнения 32-разрядного двоичного файла на 64-разрядной установке Вы должны к [1 122] установить ia32-libs
пакет . Вы, возможно, должны установить дополнительные библиотеки (Вы получите явное сообщение об ошибке, если Вы сделаете).
Начиная с 11,10 (сновещательных) представленных мультидуга поддержка, можно все еще установить ia32-libs
, но можно выбрать подход с более прекрасными зернами, достаточно добраться libc6-i386
(плюс любая другая необходимая библиотека).