PHP с MySQLi и выполнение сценария MySQL с переменной? - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь настроить небольшую консоль администратора в моей среде Windows localhost, которая обрабатывает таблицу результатов по мере необходимости, и, хотя у меня все остальное работает, я нахожусь в тупике на следующем, и хотя решение упомянуто в этот вопрос кажется желательным, мне было трудно понять, каков путь к сценарию, так как я уже указывал хост, имя пользователя, пароль и базу данных в моем операторе MySQLi_CONNECT перед другими рабочими запросами. Если есть другой лучший способ, я буду признателен за это.

По сути, мне нужно обновить таблицу с рейтингом, который, как я знаю, может быть упрощен на других платформах SQL, но MySQL, кажется, работает для меня, только когда я использую переменную сценария. Вот фрагмент моего кода из bb2process.sql:

SET @rank := 0;
update bbdata.bb2 SET PTRANK= @rank:= (@rank+1) ORDER BY PTOTAL DESC

Это полностью работает, когда я запускаю скрипт в браузере запросов MySQL, но, конечно, не тогда, когда я разделяю команды и использую MySQLi_QUERY по отдельности, а решение, на которое я ссылаюсь, предлагает использовать SHELL_EXEC для запуска скрипта MySQL, но по существу нужен четкий пример.

1 Ответ

0 голосов
/ 13 января 2019

Это действительно сработало для меня, хотя мне интересно, есть ли более чистый способ, если я перейду на новый компьютер, который я ожидаю получить в ближайшее время:

$mycmd = "\"C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysql.exe\" -h " . $hostname . " --user=";
$mycmd = $mycmd . $mysql_login . " --password=" . $mysql_password . " --database=";
$mycmd = $mycmd . $database . " < bb2-process.sql";
echo '<br/><br/>' . $mycmd;
$output = shell_exec($mycmd);

Единственное, что меня озадачило, это то, что мой $ output ничего не отображал, когда я пытался отобразить его, но когда я вошел в браузер запросов, я увидел, что он работает как минимум.

...