facebook twitter hatena line email

Php/pdoメモ

提供: 初心者エンジニアの簡易メモ
2018年10月18日 (木) 23:43時点におけるAdmin (トーク | 投稿記録)による版 (timeフォーマットエラー対策)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

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'