解決出来ました!
紹介していただいた
http://php.net/manual/ja/pdo.construct.php
と自分のソースを見比べてどうやらPDOの使い方が間違っていたようです。
php
1
2<?php
3/* ドライバ呼び出しを使用して ODBC データベースに接続する */
4$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
5$user = 'dbuser';
6$password = 'dbpass';
7
8try {
9 $dbh = new PDO($dsn, $user, $password);
10} catch (PDOException $e) {
11 echo 'Connection failed: ' . $e->getMessage();
12}
13
14?>
15
によると$dbh = new PDO($dsn, $user, $password);となっていましたが
自分のコードでは
php
1<?php
2
3try {
4
5$staff_code = $_POST['code'];
6
7$dsn ='mysql:host=mysqlxxx.phy.lolipop.lan;charset=utf8'; $dbname = 'xxxxxxx-shop'; $user = 'xxxxxxxx'; $password ='xxxxxxxx'; $dbh = new PDO($dsn,$dbname,$user,$password); $dbh -> query('SET NAMES utf8');
8
9$stmt = $dbh -> prepare('DELETE FROM mst_staff WHERE code=?'); $data[] = $staff_code; $stmt -> execute($data);
10
11$dbh = null;
12
13} catch(Exception $e) { print 'ただいま障害により大変ご迷惑をお掛けしております。'; exit(); }
14
15?>
の$dbh = new PDO($dsn,$dbname,$user,$password);に$dbnameがなぜか入っていました
$dsnに本来は入れるべきでした。
今回質問して
php
1ini_set( 'display_errors', 1 );
2ini_set('error_reporting', E_ALL);
というコードを知ることができて大変勉強になりました。
ありがとうございました!