ボートレース競走結果 収集クローラ作成⑤ ~webページ作成~

概要

web上からデータベースのデータにアクセスするための簡単な動的webページを作成した。
言語は、php
webserverには、apache
を使用した。
クローラの全体像については、こちらを参照 全体の概要:

Webserver構築

apacheを使用した。
このwebサイトを参考に構築した。

ソースコード説明

SQL問い合わせ入力画面
フォームの情報をポストメソッドで送った。

<html>

<head>
   <meta charset="utf8">
   <title>Boatrace_crawrer</title>
</head>

<body>
<h2>
Boatrace_crawrer<br/>
</h2>
<h4>
問い合わせ
</h4>

<form method="post" action="webpage_sample.php">
    query:<br />
    <input type="text" name="query" size=100/><br/>
    <input type="submit" value="実行"/>
</form>

</body>
</html>

f:id:maru-taka:20170913085739p:plain
実行画面


入力画面で入力しポストメソッドで送った問い合わせを実行する。

<html>

<head>
<meta charset = "utf-8"/>
<title>Boatrace_crawrer</title>
</head>

<body>

<?php

        print "<p><a href=\"getquery.php\">query画面へ</a></p>";
    //設定ファイルの読み込み
    require_once("config.php");

        ini_set("mysqli.default_socket","/tmp/mysql.sock");

    //MySQLへの接続
    $link = mysqli_connect($dbserver,$user,$password,$dbname)
        or die("MySQL unconected");

    //文字コード設定
    mysqli_set_charset($link, "utf8")
        or die("can't link code");

    //問い合わせ
    $query = $_POST["query"];

    $result = mysqli_query($link,$query)
        or die("fail implements of query!");

    $rows = mysqli_num_rows($result);
    print "<p>該当件数は" . $rows . "件でした。<br />";

    print "<p>問い合わせ結果";
    print "<ul>";
    while ($row = $result->fetch_assoc()) {
        print "<li>";
        print_r($row);
        print "</li>";
    }
    print "</ul>";

    mysqli_free_result($result);

    mysqli_close($link);
?>
</body>
</html>

f:id:maru-taka:20170910065824p:plain
実行画面

localhost127.0.0.1

MySQLでは、接続の際にサーバをlocalhostで指定するのと127.0.0.1で指定するのでは、挙動が異なる。
具体的には、localhostを指定した場合には、UNIXドメインソケットを用いて通信を行い、127.0.0.1では、TCP/IP通信を用いて通信が行われる。
今回は、ini_set関数を用いてlocalhostUNIXドメインソケットを用いて通信を行った。

ini_set("mysqli.default_socket","/tmp/mysql.sock");

うまく設定できていないと次のようなエラーメッセージが表示される。

Warning: mysqli_connect(): (HY000/2002): No such file or directory in /.../webpage_sample.php on line 19
MySQL unconected%

参考webサイト