facebook twitter hatena line email

「Php/pdoメモ」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「=pdoメモ= ==インストール== php-5.1移行であれば標準でついてくる ==php.iniの編集(windows== 以下を有効に extension=php_pdo.dll extension=ph...」)
 
(timeフォーマットエラー対策)
 
(同じ利用者による、間の4版が非表示)
行18: 行18:
 
  try {
 
  try {
 
     // MySQLサーバへ接続
 
     // MySQLサーバへ接続
     $pdo = new PDO("mysql:host=localhost; dbname=test",
+
     $conn = new PDO("mysql:host=localhost; dbname=test", "username", "pas*****");
                  "root", "password");
+
    // $conn = new PDO('mysql:host=localhost; dbname=test;port=3306','username','pas*****');
     $stmt = $pdo->query("SELECT * FROM test");
+
     $stmt = $conn->query("SELECT * FROM test");
 
     while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
 
     while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
 
         echo print_r($row,1);
 
         echo print_r($row,1);
行28: 行28:
 
  }
 
  }
 
  // 切断
 
  // 切断
  $pdo = null;
+
  $conn = null;
 +
 
 +
==1つのカラムだけ==
 +
$sql = "SELECT count(*) FROM tests;";
 +
$stmt = $conn->query($sql);
 +
echo $stmt->fetchColumn():
 +
 
 +
==設定ファイルを別ファイルにして接続==
 +
.env
 +
DB_HOST=localhost
 +
DB_DATABASE=test
 +
DB_USERNAME=username1
 +
DB_PASSWORD=xxxxxx
 +
 
 +
connect.php
 +
$env = parse_ini_file('.env');
 +
try {
 +
    $conn = new PDO("mysql:host=".$env['DB_HOST']."; dbname=".$env['DB_DATABASE'], $env['DB_USERNAME'], $env['DB_PASSWORD']);
 +
 
 +
==timeフォーマットエラー対策==
 +
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect time value: '00:42:60' for column 'movietime' at row 1' in
 +
対応方法
 +
$time = '00:42:60';
 +
$time = date("H:i:s", strtotime($time));
 +
echo $time; // '00:43:00'

2018年10月18日 (木) 23:43時点における最新版

pdoメモ

インストール

php-5.1移行であれば標準でついてくる

php.iniの編集(windows

以下を有効に

extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll

接続

try {
   // MySQLサーバへ接続
   $conn = new PDO("mysql:host=localhost; dbname=test", "username", "pas*****");
   // $conn = new PDO('mysql:host=localhost; dbname=test;port=3306','username','pas*****');
   $stmt = $conn->query("SELECT * FROM test");
   while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
       echo print_r($row,1);
   }
} catch(PDOException $e){
   var_dump($e->getMessage());
}
// 切断
$conn = null;

1つのカラムだけ

$sql = "SELECT count(*) FROM tests;";
$stmt = $conn->query($sql);
echo $stmt->fetchColumn():

設定ファイルを別ファイルにして接続

.env

DB_HOST=localhost
DB_DATABASE=test
DB_USERNAME=username1
DB_PASSWORD=xxxxxx

connect.php

$env = parse_ini_file('.env');
try {
   $conn = new PDO("mysql:host=".$env['DB_HOST']."; dbname=".$env['DB_DATABASE'], $env['DB_USERNAME'], $env['DB_PASSWORD']);

timeフォーマットエラー対策

PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect time value: '00:42:60' for column 'movietime' at row 1' in 

対応方法

$time = '00:42:60';
$time = date("H:i:s", strtotime($time));
echo $time; // '00:43:00'