[M1 Mac, Big Sur 11.7.2, PHP 8.2.1, MySQL 8.0.31]
MySQLサーバに接続して検索し、結果をChromeに表示させました。
PHP7からMySQL関連の関数が刷新されていました。PHP5以前の情報もネットに多く残っており、非常に紛らわしいです。
少なくとも記事の公開日とPHPのバージョンを明記して欲しいです。
<?php
require_once ('../../composer/vendor/autoload.php');
use Facebook\WebDriver\Chrome\ChromeDriver;
# カレントディレクトリ変更
$cmd_cd_fmt = 'cd %s';
$cmd_cd = sprintf($cmd_cd_fmt, "/code/PHP/projects/mysql03");
exec($cmd_cd);
# MySQLサーバ起動判定
exec('mysqladmin ping', $out, $ret);
echo $out[0];
echo "\n";
if(strpos($out[0],'alive') === false){
exec('mysql.server start');
}else{
print 'MySQLは起動しています';
echo "\n";
}
# Webサーバ起動
exec('php -S localhost:8888 -t "/code/PHP/projects/mysql03" > /dev/null &');
# chromedriverのパス設定
$driverPath = realpath("/opt/homebrew/Caskroom/chromedriver/107.0.5304.62/chromedriver");
putenv("webdriver.chrome.driver=" . $driverPath);
# Chromeを起動しphpスクリプトを実行
$driver = ChromeDriver::start();
$driver->get('http://localhost:8888/mysql_html.php');
exec('mysql.server stop');
?>
<html>
<head>
<title>MySQL TOOL</title>
</head>
<body>
<?php
# MySQLにログイン
$conn = new mysqli('localhost', 'root');
if (!$conn){
die("MySQL接続に失敗しました");
} else {
print 'MySQL接続に成功しました';
}
# データベース選択
$select_db = 'use data';
$select = $conn->query($select_db);
# 検索実行
$query = "SELECT * FROM `TableA` WHERE `Name` LIKE '%suzuki%'";
$result = $conn->query($query);
$rows = $result->fetch_all(MYSQLI_ASSOC);
foreach ($rows as $row) {
printf("%s %s %s %d %d\n", $row["A"], $row["B"], $row["C"], $row["D"], $row["E"]);
}
$conn->close();
?>
</body>
</html>