@destroy_fukuma

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

phpのデータベース接続について

version: '3'

services:
    php:
        image: php:8.2-apache
        volumes:
            - .:/var/www/html
        ports:
            - 15000:80
        container_name: php7.2-trial2-type2
    
    
    mysql:
        platform: linux/x86_64 #Mac M1
        image: mysql:5.7
        volumes:
            #- /var/lib/mysql
            - ./mysql_data:/var/lib/mysql

        environment:
            - MYSQL_ROOT_PASSWORD=root
            - MYSQL_DATABASE=test
            #- MYSQL_USER=root
            #- MYSQL_PASSWORD=root
        container_name: mysql5.7-trial2-typ2

yamlファイルにこのように記述を行い、localhost:15000 で無事に接続は出来るのですが、

<?php
try {
  //データベースへ接続
  $dbh = new PDO("mysql:host=mysql; dbname=test; charset=utf8", 'root', 'root');
  
  //テーブル作成のSQLを作成
  $sql = 'CREATE TABLE user_list (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20),
  ) engine=innodb default charset=utf8';

  //SQLを実行
  $res = $dbh->query($sql);

} catch(PDOException $e) {

  echo $e->getMessage();
  die();
}

//接続を解除
$dbh = null;
echo 'aaa'

sql.phpファイルにこのように記述を行った所、「could not find driver」と出て、接続が出来ません。そこで調べた所、yum -y install php-pdo yum -y install php-mysql を使用する事で解消するとありましたので、
私が使用してる パッケージ管理システム であるnpmを使用して、
npm -y install php-pdo 
npm -y install php-mysql
とコマンドを使用した所、

(node:20644) ExperimentalWarning: Support for loading ES Module in require() is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
npm error code E404
npm error 404 Not Found - GET https://registry.npmjs.org/php-pdo - Not found
npm error 404
npm error 404  'php-pdo@*' is not in this registry.
npm error 404
npm error 404 Note that you can also install from a
npm error 404 tarball, folder, http url, or git url.
npm error A complete log of this run can be found in:

と出て先に進めません。有識者の方ここからどうすればいいのでしょうか?

0 likes

1Answer

npm は Node.js のパッケージマネージャで、 yum は RedHat 系 Linux のパッケージマネージャです。まったく別物なのでコマンド名を入れ替えても動きません。指示通り yum を使ってください。ただし OS が違えばコマンドもパッケージ名も異なることがあります。

0Like

Comments

  1. @destroy_fukuma

    Questioner

    sudo apt update
    sudo apt install -y php-mysql
    でinstall したのはいいですが、
    上記と同様に、http://localhost:15000/sql.phpと入れますと、could not find driver
    と出ます。
    ーーー捕捉説明------
    made_in_php/index.phpは、
    [http://localhost:15000/sql.php]で、確かに接続ができるが、
    データベース接続を記述した、made_in_php/mysql.phpは
    [could not find driver] と表示される

Your answer might help someone💌