pgintro.net

PHP MySQL接続方法

作成日時:2019/05/05

更新日時:2019/05/05

スポンサーリンク

この記事の確認環境

phpversion() : 7.2.7

mysql_connect

https://www.php.net/manual/ja/function.mysql-connect.php

PHP 5.5.0 で非推奨、PHP 7.0.0 で削除された関数

mysqli

「オブジェクト指向型」と「手続き型」の2通り用意されています。

以下のサンプルは「オブジェクト指向型」

https://www.php.net/manual/ja/class.mysqli.php

クエリ結果取得関連

https://www.php.net/manual/ja/class.mysqli-result.php

https://www.php.net/manual/ja/mysqli-result.fetch-assoc.php

https://www.php.net/manual/ja/mysqli-result.free.php

文字セット関連

https://www.php.net/manual/ja/mysqli.set-charset.php

接続関連

https://www.php.net/manual/ja/mysqli.close.php

mysqli接続〜データ取得

<?php
define('DB_NAME', 'database_name');
define('DB_USER', 'database_user');
define('DB_PASSWORD', 'database_pass');
define('DB_HOST', 'database_host');

$mysqli = new mysqli( DB_HOST, DB_USER, DB_PASSWORD, DB_NAME );

if ( $mysqli->connect_error ) {

  echo '<pre>' . $mysqli->connect_error . '</pre>';

} else {

  $mysqli->set_charset( "utf8" );

  $sql = "SELECT * FROM table_name";
  if ( $result = $mysqli->query( $sql ) ) {

  echo '<table>';
  while ( $row = $result->fetch_assoc() ) {
    echo '<tr>';
    echo '<td>' . $row["id"] . '</td>';
    echo '<td>' . $row["name"] . '</td>';
    echo '</tr>';
  }
  echo '</table>';

  $result->free();
  }

  $mysqli->close();
}
?>

https://www.php.net/manual/ja/mysqli.prepare.php

https://www.php.net/manual/ja/mysqli-stmt.error.php

https://www.php.net/manual/ja/mysqli-stmt.bind-param.php

$name = "Name";
$detail = "Detail";
if($stmt = $mysqli->prepare("INSERT INTO table_name ( name, detail ) VALUES ( ?, ? )"))
{
  if($stmt->bind_param( "ss", $name, $detail ))
  {
  if(!$stmt->execute())
  {
    error_log('Error : ' . $stmt->error);
  }
  }
  $stmt->close();
}