質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

700閲覧

LAMP環境構築:PHPでデータベースを表示させる際のエラー

Cchan

総合スコア35

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2019/01/14 08:52

編集2019/01/14 08:55

CentOS6.9において、Lamp環境をソースからインストールする練習をしています。今現在、データベースを表示させようとしているのですが、エラーが発生しています。
バージョン情報:PHP7.3.0,mysql5.6.42,Apache2.4.37

###1:上記LAMP環境のインストールが終わった状態でPHPでPDO,MySQLiそれぞれでデータベースに接続しようと試みたのですが、両方失敗します。

以下それぞれのPHPのソースコードと、エラーになります。

  • PDO
<?php try { $dbh = new PDO('mysql:host=localhost;dbname=test','root', $pass); foreach($dbh->query('SELECT * from FOO') as $row) { print_r($row); } $dbh = null; } catch (PDOException $e) { print "エラー!: " . $e->getMessage() . "<br/>"; die(); } ?>

表示結果

エラー!: could not find driver

pdoはphpinfo関数を表示させたときに有りました。
以下phpinfoになります。

PDO drivers sqlite SQLite Library 3.24.0
  • MySQLi
<?php $link = mysqli_connect("localhost", "root", "$pass", "test"); ?>

表示結果

Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in /usr/local/httpd/htdocs/database.php:3 Stack trace: #0 {main} thrown in /usr/local/httpd/htdocs/database.php on line 3

MySQLiはphpinfo関数を表示させたときにありましたが以下のみでした。

MySQLi Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel

###2:phpにインストールされたパッケージ一覧やバージョン表示時にエラーが発生します。

$ php -m PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/local/lib/php/extensions/no-debug-zts-20180731/mysqli (/usr/local/lib/php/extensions/no-debug-zts-20180731/mysqli: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-zts-20180731/mysqli.so (/usr/local/lib/php/extensions/no-debug-zts-20180731/mysqli.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

以下、それぞれのパッケージのバージョンをコマンドで表示した際の結果です。

$ mysql --version mysql Ver 14.14 Distrib 5.6.42, for Linux (x86_64) using EditLine wrapper $ /usr/local/httpd/bin/httpd -v Server version: Apache/2.4.37 (Unix) $ php -v PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/local/lib/php/extensions/no-debug-zts-20180731/mysqli (/usr/local/lib/php/extensions/no-debug-zts-20180731/mysqli: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-zts-20180731/mysqli.so (/usr/local/lib/php/extensions/no-debug-zts-20180731/mysqli.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/local/lib/php/extensions/no-debug-zts-20180731/mysqli (/usr/local/lib/php/extensions/no-debug-zts-20180731/mysqli: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-zts-20180731/mysqli.so (/usr/local/lib/php/extensions/no-debug-zts-20180731/mysqli.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 PHP 7.3.0 (cli) (built: Jan 9 2019 17:20:14) ( ZTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies

モジュールが読み込まれていなさそうなのですが、ここからどのようにして解決をはかればよいかわかりません・・・。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/01/14 10:17

Laravel関係ないのでは?
guest

回答2

0

ベストアンサー

phpinfo で、

PDO drivers sqlite
SQLite Library 3.24.0

のみが表示されているのであれば、 PDO で使えるのは、 sqlite だけです。


ソースからインストールと書かれていますので、 configure のオプション指定が不足しているのかもしれません。

phpinfo で、表示される Configure Command の部分は、どうなっているでしょうか?

mysql を使うという指示の --with-mysqli=mysqlnd--with-pdo-mysql=mysqlnd 等の記載はあるでしょうか?

記載があるのであれば、extension ディレクトリの指定がまちがっている or configure や make 時にエラーが出ている可能性がありますので、php.ini の設定内容や configuremake のログを確認してください。

記載がない場合は、 configure 時に mysql を使うという指示をしていないためですので、再度 configure オプションを指定して、configure 〜 make 〜 make install をやり直してください。


(以下、参考までに...)

PDO で、mysql が使えるように設定されていたら phpinfo の結果に

PDO PDO support enabled PDO drivers mysql, sqlite

のように表示され、下記のような pdo_mysql のセクションがあると思われます。

pdo_mysql PDO Driver for MySQL enabled (以下略)

同様に mysqli が有効になっていたら、phpinfo に mysqliセクションがあり、下記のような表示があると思われます。

mysqli Mysqli Support enabled (以下略)

投稿2019/01/15 05:04

編集2019/01/15 05:06
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

phpinfo関数を表示させたときに有りました。

sqliteとmysqlは別のものです。
利用するのは「pdo_mysql」ですね。
念のため「mysqli」のextensionも有効になっているか確認してください(php.ini)

投稿2019/01/15 01:02

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問