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

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

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

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

Q&A

解決済

2回答

297閲覧

レンタルサーバでのphpネイティブドライバインストールについて

ringoman

総合スコア17

PHP

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

0グッド

0クリップ

投稿2019/05/23 05:39

編集2019/05/23 06:40

get_result関数を使用したく、PHPネイティブドライバをインストールしたいのですが、当方レンタルサーバを使用しております。
PHPはレンタルサーバに基本機能としてついており、php.iniなどもサーバ管理画面から編集します。
この場合、PHPネイティブドライバはインストールの可否判断含め、サーバ会社にインストールしてもらわなければならないのでしょうか?
(現在サーバ会社に問い合わせ中ですが、実は自分でインストールできるのではと希望が捨てきれずに質問させていただきました)

※ちなみにこちらのサイトにPHP5.3以上だと自動的に導入されていると記載があり、当方PHP7のため一応get_resultを実行したところ

php

1Fatal error: Uncaught Error: Call to undefined method mysqli_stmt::get_result() in

とエラーになりました。やはりPHPバージョン関係なくドライバがないと使用できないのでしょうか。

また、現在ドライバをインストールしたいサイトは今後別のレンタルサーバに移行予定です。
レンタルサーバ毎に仕様が異なるPHPネイティブドライバの使用は避けるべきでしょうか?

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

追記1

実行したコードです。

php

1 $mysqli = new mysqli("localhost", "user", "password", "DB"); 2 3 /* 接続状況をチェックします */ 4 if (mysqli_connect_errno()) { 5 print_r('DB接続エラー<br>'); 6 printf("Connect failed: %s\n", mysqli_connect_error()); 7 exit(); 8 }else{ 9 print_r('DB接続成功<br>'); 10 } 11 12 //プリペアードステートメントを作成 13 $stmt = $mysqli->prepare("SELECT t.* FROM test t WHERE user_name = ?"); 14 //$stmt = $mysqli->prepare("SELECT t.col2 FROM test t WHERE user_name = ?"); 15 print_r('プリペア作成した<br>'); 16 17 if ($stmt) { 18 $u_name = 'テストユーザ1'; 19 20 /* マーカにパラメータをバインドします */ 21 $stmt->bind_param("s", $u_name); 22 print_r('バインド後<br>'); 23 24 /* クエリを実行します */ 25 $stmt->execute(); 26 print_r('実行後<br>'); 27 28 /* 結果変数をバインドします */ 29 //$stmt->bind_result($un); 30 $result = $stmt->get_result(); 31 print_r('結果バインド後<br>'); 32 33 /* 値を取得します */ 34 /*while ($stmt->fetch()) { 35 echo 'ユーザ名「 '.$un.'」<br>'; 36 }*/ 37 while ($row = $result->fetch_assoc()) { 38 echo 'ユーザ番号「 '.$row['col1'].'」<br>'; 39 echo 'ユーザ名「 '.$row['col2'].'」<br>'; 40 echo 'ユーザURL「 '.$row['col3'].'」<br>'; 41 echo 'ユーザ郵便番号「 '.$row['col4'].'」<br>'; 42 echo 'ユーザ都道府県「 '.$row['col5'].'」<br>'; 43 } 44 45 /*指定したステートメントハンドルの結果を格納したメモリを開放する*/ 46 $stmt->free_result(); 47 print_r('メモリ開放後<br>'); 48 49 /* ステートメントを閉じます */ 50 $stmt->close(); 51 print_r('ステートメント閉じ後<br>'); 52 53 }

※上記コードを実行すると

php

1/* クエリを実行します */ 2 $stmt->execute(); 3 print_r('実行後<br>');

の「実行後」までしか表示されません。

※上記コード中コメントアウトしてある以下のコードを使用すると最後まで正常実行され、ユーザ名も想定通りのものが表示されます。

php

1//$stmt = $mysqli->prepare("SELECT t.col2 FROM test t WHERE user_name = ?"); 2//$stmt->bind_result($un); 3/*while ($stmt->fetch()) { 4 echo 'ユーザ名「 '.$un.'」<br>'; 5 }*/

追記2

レンタルサーバはスターサーバです。
先ほど、現状スターサーバとしてmysqlndを提供していないし、自身で導入することもできない。と回答をいただきました。

追記3

MySQL関連の情報とは以下のような情報でよろしいでしょうか?
MySQL driver for PDO George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter
MySQLi Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel
MySQLnd Andrey Hristov, Ulf Wendel, Georg Richter, Johannes Schlüter

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/05/23 05:44

その場面ではどんなコードを書いていますか? 書き方が問題あるとは考えませんでしたか?
CHERRY

2019/05/23 06:07

どこのレンタルサーバーかを記載した方が的確な回答がつくと思いますが、とりあえず、phpinfo() を実行して、MySQL 関連部分を質問に追記してください。
guest

回答2

0

自己解決

現状スターサーバとしてmysqlndを提供していないし、自身で導入することもできない。と回答をいただきました。

投稿2019/05/27 06:28

ringoman

総合スコア17

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

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

0

勝手にインストール出来るなら、ウィルスなど危険なものでもインストール出来るのではないか?と考えませんでしたか?

投稿2019/05/23 05:42

yoorwm

総合スコア1305

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問