「Php/pdoメモ」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→設定ファイルを別ファイルにして接続) |
(→timeフォーマットエラー対策) |
||
| 行49: | 行49: | ||
==timeフォーマットエラー対策== | ==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 | 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 = '00:42:60'; | ||
$time = date("H:i:s", strtotime($time)); | $time = date("H:i:s", strtotime($time)); | ||
echo $time; // '00:43:00' | 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'
