タグ付けされた質問 「pdo」

PDO(PHPデータオブジェクト)は、PHPのデータアクセス抽象化レイヤー(インターフェイス)です。ほとんどのデータベースシステムで動作します。

3
PDOのクエリと実行
彼らは両方とも同じことをしますか? 使用した以外の任意の差があるprepare間は、 $sth = $db->query("SELECT * FROM table"); $result = $sth->fetchAll(); そして $sth = $db->prepare("SELECT * FROM table"); $sth->execute(); $result = $sth->fetchAll(); ?
129 php  pdo 

4
MySQL、MySQLi、PDOの違いは何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 7年前休業。 この質問を改善する MySQL、MySQLi、PDOの違いは何ですか? PHP-MySQLでの使用に最適なのはどれですか?
128 php  mysql  pdo  mysqli 


5
PDOが接続を閉じる
MySQLiと比較して、PDOに関してはかなり単純な質問です。 MySQLiでは、接続を閉じるには次のようにします。 $this->connection->close(); ただし、PDOでは、次を使用して接続を開くと記載されています。 $this->connection = new PDO(); 接続を閉じるには、に設定しnullます。 $this->connection = null; これは正しいですか?これは実際にPDO接続を解放しますか?(私はそれがに設定されているのでそれを知っていnullます。)closeつまり、MySQLiでは、接続を閉じるために関数()を呼び出す必要があります。PDOは= null切断するのと同じくらい簡単ですか?または、接続を閉じる機能はありますか?
120 php  pdo 

10
LIMIT句でbindValueメソッドを適用する方法は?
これが私のコードのスナップショットです: $fetchPictures = $PDO->prepare("SELECT * FROM pictures WHERE album = :albumId ORDER BY id ASC LIMIT :skip, :max"); $fetchPictures->bindValue(':albumId', $_GET['albumid'], PDO::PARAM_INT); if(isset($_GET['skip'])) { $fetchPictures->bindValue(':skip', trim($_GET['skip']), PDO::PARAM_INT); } else { $fetchPictures->bindValue(':skip', 0, PDO::PARAM_INT); } $fetchPictures->bindValue(':max', $max, PDO::PARAM_INT); $fetchPictures->execute() or die(print_r($fetchPictures->errorInfo())); $pictures = $fetchPictures->fetchAll(PDO::FETCH_ASSOC); 私は得る SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、1行目の '' 15 '、15'付近で使用する正しい構文を確認してください PDOがSQLコードのLIMIT部分の変数に単一引用符を追加しているようです。私はそれを調べたところ、関連していると思われるこのバグを見つけました:http : //bugs.php.net/bug.php?id=44639 …
117 php  mysql  sql  pdo  bindvalue 

7
PDO MySQL:PDO :: ATTR_EMULATE_PREPARESを使用するかどうか。
これは私がこれまで読んだことですPDO::ATTR_EMULATE_PREPARES: MySQLのネイティブ準備はクエリキャッシュをバイパスするため、PDOの準備エミュレーションはパフォーマンスが向上します。 MySQLのネイティブ準備は、セキュリティ(SQLインジェクションの防止)に優れています。 MySQLのネイティブ準備はエラー報告に適しています。 これらの発言がどれほど真実であるかはわかりません。MySQLインターフェースを選択する際の最大の懸念は、SQLインジェクションを防ぐことです。2番目の問題はパフォーマンスです。 私のアプリケーションは現在、手続き型MySQLi(準備済みステートメントなし)を使用しており、クエリキャッシュをかなり利用しています。準備されたステートメントを1つのリクエストで再利用することはほとんどありません。名前付きパラメーターと準備済みステートメントのセキュリティーのために、PDOへの移行を開始しました。 私は使用MySQL 5.1.61していますPHP 5.3.2 PDO::ATTR_EMULATE_PREPARES有効のままにするかどうか。クエリキャッシュのパフォーマンスと準備されたステートメントのセキュリティの両方を実現する方法はありますか?
117 php  mysql  pdo 

7
1行を返すPHP PDO
更新2: これは、取得できる最も最適化されたものですか? $DBH = new PDO( "connection string goes here" ); $STH = $DBH -> prepare( "select figure from table1" ); $STH -> execute(); $result = $STH -> fetch(); echo $result ["figure"]; $DBH = null; 更新1: SQLクエリに制限を追加できることはわかっていますが、不要なforeachループも削除したいと思います。 元の質問: 「foreach」セクションのため、データベースから多くの行を返すのに適した次のスクリプトがあります。 データベースから常に1行しか取得しないことがわかっている場合、これをどのように最適化すればよいですか。データベースから1行しか取得しないことがわかっている場合、foreachループが必要な理由はわかりませんが、コードを変更する方法はわかりません。 $DBH = new PDO( "connection string goes here" ); $STH …
113 php  pdo 


4
PHPでMySQL APIを混在させることはできますか?
私はネットを検索し、これまで私が見たものを使用できるということですしているmysql_とmysqli_一緒に意味します: <?php $con=mysqli_connect("localhost", "root" ,"" ,"mysql"); if( mysqli_connect_errno( $con ) ) { echo "failed to connect"; }else{ echo "connected"; } mysql_close($con); echo "Done"; ?> または <?php $con=mysql_connect("localhost", "root" ,"" ,"mysql"); if( mysqli_connect_errno( $con ) ) { echo "failed to connect"; }else{ echo "connected"; } mysqli_close($con); echo "Done"; ?> 有効ですが、このコードを使用すると、次のようになります。 Connected …
106 php  mysql  pdo  mysqli 

9
PDOを使用してNULL値を挿入するにはどうすればよいですか?
私はこのコードを使用していて、私はフラストレーションを超えています: try { $dbh = new PDO('mysql:dbname=' . DB . ';host=' . HOST, USER, PASS); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'"); } catch(PDOException $e) { ... } $stmt = $dbh->prepare('INSERT INTO table(v1, v2, ...) VALUES(:v1, :v2, ...)'); $stmt->bindParam(':v1', PDO::PARAM_NULL); // --> Here's the problem PDO::PARAM_NULL, null, '', それらのすべてが失敗し、このエラーをスローします: 致命的なエラー:/ opt …
105 php  mysql  pdo  null  sql-insert 

6
MySQL LinuxサーバーへのPDOドライバーのインストール
私のクエリをパラメーター化し、HTMLをデータベースに安全に保存するために、コードをPDOを使用するように変更するよう提案されました。 さて、ここに主な問題があります: 私はhttp://php.net/manual/en/ref.pdo-mysql.phpを調べましたが、その$ ./configure --with-pdo-mysql文字列をどこに置くべきか本当にわかりません... 私が構築しているサイトでは、実際には1ページのPDOのみが必要です。私はそれを書き直すことを検討するかもしれませんが、しばらく時間がかかり、ページをすぐに実行する必要があるため、MySQLを完全にオフにすることはできません。PDOをインストールしても、mysql_*ハンドラーを使用できますか? 問題のサーバーは、PHPバージョン5.4.6-1ubuntu1およびApache / 2.2.22(Ubuntu)を実行しています。必要に応じて、phpMyAdminデータベースも実行しています。
102 php  mysql  pdo  phpmyadmin  install 

7
複数のクエリに対するPDOサポート(PDO_MYSQL、PDO_MYSQLND)
PDOが1つのステートメントで実行される複数のクエリをサポートしていないことは知っています。私はGoogleを利用していて、PDO_MYSQLとPDO_MYSQLNDについて話している投稿をいくつか見つけました。 PDO_MySQLは、他の従来のMySQLアプリケーションよりも危険なアプリケーションです。従来のMySQLでは、単一のSQLクエリしか許可されていません。PDO_MySQLにはそのような制限はありませんが、複数のクエリが挿入されるリスクがあります。 From:PDOおよびZend Frameworkを使用したSQLインジェクションからの保護(2010年6月、Julianによる) PDO_MYSQLとPDO_MYSQLNDは複数のクエリをサポートしているようですが、それ以上の情報は見つかりません。これらのプロジェクトは中止されましたか?PDOを使用して複数のクエリを実行する方法はありますか?
102 php  mysql  pdo 

2
ユーザーパスワードのクレンジング
ユーザー提供のパスワードをハッシュしてデータベースに保存する前に、どのようにエスケープまたはクレンジングする必要がありますか? PHP開発者がセキュリティ上の目的でユーザーのパスワードをハッシュすることを検討するとき、開発者は多くの場合、他のユーザー提供のデータと同じようにそれらのパスワードを考える傾向があります。この問題は、パスワードの保存に関連するPHPの質問でよく出てきます。開発者は多くの場合のような機能を使用してパスワードを清めるために望んでいるescape_string()(様々な繰り返しで)、 、htmlspecialchars()、addslashes()それをハッシュし、それをデータベースに格納する前に他の人。
98 php  sql  pdo  hash 

7
PDO mysql:挿入が成功したかどうかを知る方法
PDOを使用してレコードを挿入しています(mysqlおよびphp) $stmt->bindParam(':field1', $field1, PDO::PARAM_STR); $stmt->bindParam(':field2', $field2, PDO::PARAM_STR); $stmt->execute(); 重複していたためにレコードが挿入されなかった場合など、正常に挿入されたかどうかを確認する方法はありますか? 編集:もちろんデータベースを見ることができますが、プログラムによるフィードバックを意味します。
96 php  mysql  database  pdo 

4
PDO接続を正しく設定する方法
データベースへの接続に関する質問がときどきあります。 ほとんどの答えは私がそれをする方法ではありません、または私はちょうど答えを正しく得ないかもしれません。とにかく; 自分のやり方がうまくいくので、私はそれについて考えたことはありません。 しかし、これはおかしな考えです。多分私はこれをすべて間違っています、そしてそれが事実なら。PHPとPDOを使用してMySQLデータベースに適切に接続し、簡単にアクセスできるようにする方法を本当に知りたいです。 ここに私がそれをやっている方法があります: まず最初に、これが私のファイル構造です(省略されています)。 public_html/ * index.php * initialize/ -- load.initialize.php -- configure.php -- sessions.php index.php 一番上にはがありrequire('initialize/load.initialize.php');ます。 load.initialize.php # site configurations require('configure.php'); # connect to database require('root/somewhere/connect.php'); // this file is placed outside of public_html for better security. # include classes foreach (glob('assets/classes/*.class.php') as $class_filename){ include($class_filename); } # …
92 php  mysql  sql  class  pdo 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.