Code Archive Skip to content Google About Google Privacy Terms
ここではデータの更新を試してみます。SQL文でUPDATEを使います。 「prepare」メソッドでSQL文を作成し「execute」メソッドでSQL文をデータベースへ発行します。 <html> <head><title>PHP TEST</title></head> <body> <?php $dsn = 'mysql:dbname=uriage;host=localhost'; $user = 'testuser'; $password = 'testuser'; try{ $dbh = new PDO($dsn, $user, $password); print('<br>'); if ($dbh == null){ print('接続に失敗しました。<br>'); }else{ print('接続に成功しました。<br>'); } $dbh->query('SET NAMES sj
ここではデータの追加を試してみます。SQL文でINSERTを使います。 「prepare」メソッドでSQL文を作成し「execute」メソッドでSQL文をデータベースへ発行します。 <html> <head><title>PHP TEST</title></head> <body> <?php $dsn = 'mysql:dbname=uriage;host=localhost'; $user = 'testuser'; $password = 'testuser'; try{ $dbh = new PDO($dsn, $user, $password); print('<br>'); if ($dbh == null){ print('接続に失敗しました。<br>'); }else{ print('接続に成功しました。<br>'); } $dbh->query('SET NAMES sj
イクス研究室、略して『イクケン』です。 株式会社イクスがお送りする プログラミング講座やニュースや雑談など。 寒い日が続いておりますが、みなさまは風邪などひいたりしていないでしょうか。ふじわらです。自分はひいてますが(ダメジャン)。 ソース等をまだ公開していないネットワーク付箋紙システムですが、セキュリティ強化策の第1弾として、とりあえずSQLインジェクション仮対策を施しました。といっても、大したことじゃないんですが。 そもそも、「SQLインジェクション」って何?ってところからお話しましょうか。 直訳すると「SQL注入」です。どういうことかというと、SQL文に、意図しない別のSQL文を注入し、設計者が想定していない結果を取得、更新してしまうことです。 具体的にどういうことなのか、簡単な例を挙げると、本来「SELECT * FROM table WHERE key='(入力値)'
サーバー側の問題もあるので、毎回安定した処理結果は得られませんでしたが、大体上表のような結果になりました。 やはりネイティブ関数は速く、mysqli関数が一番速い結果になりました。 続いて同じくネイティブ関数のmysql関数が続き、その次にPDOという結果になりました。 PDOでは、プリペアドステートメントを用いてSQLを発行したため、2回目のSQLの発行ではキャッシュが効き、劇的な速さになっています。 一番遅かったのは予想通り、PEAR::DBでした。 ネイティブ関数よりも2〜3倍遅く、PDOよりも2倍近く遅い結果となりました。 PHP用アクセラレータを導入していなければ、PEAR::DBはもっと遅くなっただろうと考えられます。 まとめ PHP5を利用していて、DBの抽象化を行いたいのであれば、PEAR系のモジュールはやめてPDOにした方が良いと言えます。 単純なSELECT文の結果でさ
test pdo::prepare; using database server code try { $pdo = new PDO("mysql:host=mysql_x_server; dbname=s2con", "root", "pass"); $pdo->setAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY, false); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); var_dump($pdo->getAttribute(PDO::ATTR_SERVER_VERSION)); $stmt = $pdo->prepare("SELECT * FROM CD WHERE ID = ?"); $stmt->bindValue(2, null); $stmt->execute
1 : /* 2 : +----------------------------------------------------------------------+ 3 : | PHP Version 5 | 4 : +----------------------------------------------------------------------+ 5 : | Copyright (c) 1997-2009 The PHP Group | 6 : +----------------------------------------------------------------------+ 7 : | This source file is subject to version 3.01 of the PHP license, | 8 : | that is bundled
Hi guyz, its been a long week for us now. I was not able to post some articles since we are currently working in our academic requirements. We hope still that we can make it. Anyway, a week ago, my instructor helped me about my particular problem. Yeah, it is actually, on how I will be able to enable postgresql support in my favorite web server, Vertrigo. If you know this server, then I definitely
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
今まではデータベースの種類によって利用する関数を分けていました。例えばMySQLへ接続する場合は「mysql_connect」関数で接続していましたし、PostgreSQLの場合は「pg_connect」関数で接続していました。データベースを固定している場合は問題がありませんが、もし将来的に違うデータベースへの変更や移植もする場合には、全て書き換えなくてはいけません。 PDOは「PHP Data Objects」の略で、どのデータベースを使っているかを隠蔽してくれるものです。PDOを使うことで、どのデータベースを利用する場合でも同じ関数を使うことができますので、もし将来データベースを変更することがあっても、PDOオブジェクトを作成する時に指定したパラメータだけを変更するばいいことになります。 PDOはPHP5.1以降に標準で利用できるようになっています。ここではPDOを使ってMySQL、P
ざっと試した感じ以下の3点が気になったので、とりあえず動くようにしてみました。 databases.ymlのencoding指定が無視される。 デバッグツールバーにSQLが表示されない。 Propel1.3で正式対応しているReplication設定ができない。 <?php class myPropel13Database extends sfPropel13Database { public function initialize($parameters = null, $name = 'propel') { parent::initialize($parameters, $name); if (sfConfig::get('sf_debug') && sfConfig::get('sf_logging_enabled')) { Propel::setLogger(myPropel13L
Propel 1.3にアップグレードする このドキュメントはPropelバージョン1.2からバージョン1.3にアップグレードする方法を説明しています。 Propel1.3のAPIは1.2のAPIととても緊密である一方で、おそらくPropelを使用するコードに対して修正を要求するいくつかの重大な変更があります。 アップグレーディングに影響を与えるPropel1.3の新しい機能は次の通りです: 新しいPHPの必要要件 Creoleの代わりにPDOを使用する ビルドとランタイムプロパティのための新しいDSN形式 新しいトランザクションAPI いくつかのメソッドシグネチャは変更しました 'mysqli'アダプタは時代遅れで削除されました 新しいSPLオートロードの統合 1.3のための要件 これはPropel1.3のランタイムとジェネレータコンポーネントのための要件です。1.2からの変更は太文字で示
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く