前提・実現したいこと
テスト環境で実装したソースコードを実機に導入する際つまづいてしまいました。
テスト環境:
MAMP, phpMyAdmin, Chrome(全てパソコン上で行いました)
実機:
sakura VPS, CentOS7.8, httpd2.4.6, phpMyAdmin(MariaDB)
テスト環境では、PHPのソースコード上でPDO();が動きましたが、実機に同じソースコードで導入しても機能しません。
前準備
環境構築をするために以下のサイトを参考にCentOSをセッティングしました。
ネコでもわかる!さくらのVPS講座 ~第五回「phpMyAdminを導入しよう」
該当のソースコード
今回、問題を単純にするためにURLを叩けばデータベースへのINSERTが実行されるPHPのファイルを用意しました。
test_insert.php
php
1 2<?php 3require_once($_SERVER['DOCUMENT_ROOT'] . '/define.php'); 4 5try{ 6 $test = "test"; 7 $db = new PDO($dsn['db_info'],$dsn['user'],$dsn['password']); 8 var_dump($db); 9 $stmt = $db->prepare("INSERT INTO test (name) VALUES ($test)"); 10 11 $stmt->execute(); 12}catch(PDOException $e){ 13 print('Error:'.$e->getMessage()); 14 // die(); 15} 16 17 18?> 19
以下、define.php
php
1 2<?php 3 4$dsn = array( 5 'db_info' => 'mysql:dbname=db_name;host=localhost;', 6 'user' => 'root', 7 'password' => 'password' 8); 9 10?> 11
しかし、データは反映されませんでした。
試したこと
1.var_dump()にてPDOを出力
以下のように表示されました(取得できていない)。
object(PDO)#1 (0) { }
2.PHPのエラーファイルを調べた
SQLに関することはなにも出力されていませんでした。
3.MariaDBのログファイルを調べた
以下のように記されていました。
200714 00:33:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 200714 0:33:38 [Note] /usr/libexec/mysqld (mysqld 5.5.65-MariaDB) starting as process 17791 ... 200714 0:33:38 InnoDB: The InnoDB memory heap is disabled 200714 0:33:38 InnoDB: Mutexes and rw_locks use GCC atomic builtins 200714 0:33:38 InnoDB: Compressed tables use zlib 1.2.7 200714 0:33:38 InnoDB: Using Linux native AIO 200714 0:33:38 InnoDB: Initializing buffer pool, size = 128.0M 200714 0:33:38 InnoDB: Completed initialization of buffer pool InnoDB: The first specified data file ./ibdata1 did not exist: InnoDB: a new database to be created! 200714 0:33:38 InnoDB: Setting file ./ibdata1 size to 10 MB InnoDB: Database physically writes the file full: wait... 200714 0:33:38 InnoDB: Log file ./ib_logfile0 did not exist: new to be created InnoDB: Setting log file ./ib_logfile0 size to 5 MB InnoDB: Database physically writes the file full: wait... 200714 0:33:38 InnoDB: Log file ./ib_logfile1 did not exist: new to be created InnoDB: Setting log file ./ib_logfile1 size to 5 MB InnoDB: Database physically writes the file full: wait... InnoDB: Doublewrite buffer not found: creating new InnoDB: Doublewrite buffer created InnoDB: 127 rollback segment(s) active. InnoDB: Creating foreign key constraint system tables InnoDB: Foreign key constraint system tables created 200714 0:33:38 InnoDB: Waiting for the background threads to start 200714 0:33:39 Percona XtraDB (http://www.percona.com) 5.5.61-MariaDB-38.13 started; log sequence number 0 200714 0:33:39 [Note] Plugin 'FEEDBACK' is disabled. 200714 0:33:39 [Note] Server socket created on IP: '0.0.0.0'. 200714 0:33:39 [Note] Event Scheduler: Loaded 0 events 200714 0:33:39 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.5.65-MariaDB' socket: '/var/lib/mysql/mysql.sock' port: 3306 MariaDB Server /var/log/mariadb/mariadb.log (END)
他にも情報をあたってみたのですが、調べてもわかりません。もしわかる方がいらっしゃればお力を貸していただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/14 06:30