公開日 2018.1.30更新日 2018.1.31カテゴリ:CakePHPタグ:PHP,CakePHP,3.5,QueryBuilder,QueryExpression,ConnectionManager
こんにちはPHP Matsuriでは色々とお世話になってる@kozoです。 この記事は2014年CakePHP Advent Calendarの11日目です CakePHP 3系からモデルは大きく変わり、戻り値が配列からオブジェクトになるとか、Modelが1ファイルだったものがTableとEntityに分かれるなど色々変わって非常に便利になってます! 今回は大きく変わったもう1個のfind(SELECT句)のSQLの組み立て方法について調べてみました。 find QueryBuilderの開始地点になり、SELECT用のQueryオブジェクトが生成されます。 QueryオブジェクトをメソッドチェーンでつなげることでSQLを組み立てます。 // 基本的な使い方 $this->Users->find() ->where(条件A) ->where(条件B) ->order(ソート条件A) ->o
jonasjohn.de: htmlSQL - a PHP class to query the web by an SQL like language http://www.jonasjohn.de/lab/htmlsql.htm htmlをSQLっぽい記述でスクレイピングできるPHPのライブラリです。更新は2006年で止まっているみたいですが、最新バージョン(0.5)は問題なくダウンロードできました。BSDライセンスです。 利用手順 必要なファイルをインクルード <?php include_once("snoopy.class.php"); include_once("htmlsql.class.php"); インスタンス化 <?php $wsql = new htmlsql(); URLにアクセス <?php $wsql->connect('url', 'http://example
htmlSQLはWebスクレイピング(部分的にHTML抽出)を可能にするPHPライブラリです。ソースが公開されていたのでご紹介します。 ※先日、お知らせさせて頂きましたように、この記事は僕が管理していた別のブログの過去記事を移行したもので正確性に欠ける可能性があります。何卒ご了承願います。 HTML内を部分的に取り出し、表示する事で、それを容易にするスクリプトがhtmlSQLというPHPライブラリです。DOM解析をSQL風に指示するらしい。 デモがありますのでご体感下さい。→htmlSQL – live example 以下のコードを使うようです。 <?php /* ** htmlSQL - Example 1 ** ** Shows a simple query */ include_once("../snoopy.class.php"); include_once("../htmlsq
SQL みたいな文法で HTML を抽出する [ [htmlSQL](http://www.jonasjohn.de/lab/htmlsql.htm) ] と言う PHP のライブラリを使ってみました。 簡単な流れのサンプル ———————————————————————- [ htmlSQL ] の簡単な流れは次の通り。 connect(‘file’, ‘./test.html’)){ print ‘Error while connecting: ‘ . $htsql->error; exit; } // SQL 文を書く if (!$htsql->query(‘SELECT * FROM a ‘)){ // a 要素の全ての情報を取得する print “エラー!取得できません!” . $htsql->error; exit; } // 結果を表示する foreach($htsql->f
■ htmlSQL http://www.jonasjohn.de/lab/htmlsql.htm 使い方は ■ 例 http://codedump.jonasjohn.de/ というサイトの クラスが "SnippetList" の ul タグを取得する場合 SELECT * FROM ul WHERE $class == "SnippetList" というSQL文になります。 PHPコードで書くと以下の通り。 その他 htmlSQLのバリエーションとしては ■ ページのタイトルを取得する場合 SELECT text FROM title <?php include_once("../snoopy.class.php"); include_once("../htmlsql.class.php"); $wsql = new htmlsql(); // connect to a URL if
「真面目にエロサイトを作ってみた」というエントリで紹介されていた、スクレイピングに使われている htmlSQL に興味を持ったので試しに使ってみた。 jonasjohn.de: htmlSQL – a PHP class to query the web by an SQL like language 準備 上記サイトよりダウンロードして解凍した中に入っている “snoopy.class.php” と “htmlsql.class.php” という2つのファイルを使用する PHP からインクルードできるところに入れます。 使い方 実際に Yahoo! のトップページからヤフーニュースのトピックスのニュースタイトルを取ってくるコードを書いてみました。 コードを見てもらえば分かるようにまさに SQL を発行している感じです。 include_once("snoopy.class.php");
本日PHPでプレースホルダ(SQLを発行する際に後から値を指定する方法)のやり方を聞かれたのでブログでもシェア。 PHPではPDOを使う事で簡単にプレースホルダが使えるようになりますよ。 以下のサイトを参考にさせていただきました。感謝! PDOで接続、SELECT、プリペアドステートメントとは(PHPでMySQLに接続) PHPでPDOを使ってMySQLに接続、INSERT、UPDATE、DELETE、COUNT、SUM – Qiita プレースホルダとは 実際にプレースホルダを使った例を見てみましょう $sth = $dbh->prepare('SELECT name, color, calories FROM fruit WHERE calories < ? AND color = ?'); $sth->execute(array(150, 'red')); この「?(ハテナ)」記号が
こんにちは。 今回はPHPについてです。 普段フレームワークで書くことが多いのでいざ平文でやろうとすると忘れていることが多いです。 今回はPHPからMySQLの使用についてです。 PHPを習い始めたころはmysql_connectとか使ってたんですが、現在では非推奨のようです。 MySQLへの接続は、mysqli、PDOのどちらかが推奨されています。 PDOがすごく良さげですが、今回は馴染みやすそうなmysqliについて書こうと思います。(PDOはいつかやってみたいですね) mysqliの基本的な使い方 mysqliではオブジェクト型と手続き型の書き方がありますが、この記事ではオブジェクト型で書きます。 手続き型にする意味がないと思うので。 以下はmysqliの基本的なコードになります。 <?php $mysqli = new mysqli("host", "user", "passwor
PEAR:DBなどにくらべて高速 Windowsプログラマに易しいこれはMicrosofのADOにコーディングの仕方でよく似たところがたくさんあるから。 SELECT文にのみフォーカスしている他のPHPデータベースクラスとは違い、複数のデータベースに素早く適応できるINSERTとUPDATEを制御するコードをサポートしています。色々なデータベースに対して、データをハンドリングしたり、文字列を結合したり、文字列をクオートするメソッドを提供しています。 などの特徴があるようです。 SourceForgeなどから入手して、Webサーバからアクセスできるディレクトリに全てのファイルを展開してください。 最小インストールとしては、 adodb.inc.php adodb-lib.inc.php adodb-time.inc.php drivers/adodb-$database.inc.php li
Croogo | Free, Open Source, CakePHP Powered CMS http://www.croogo.org/ 独自ドメインでポートフォリオ的なサイトを構想していて、CakePHPベースなCMSのCroogoを使ってみることにしました。 WordPress飽きた CakePHPが個人的に旬 PHP Matsuriのサイトでも使われてる このへんが採用の理由です。 インストール手順 Errors | Croogo CakePHPダウンロード&インストール 最新バージョン(1.3系)がいいと思われます Croogoダウンロード&配置 zip解凍して中身をappディレクトリに上書き MySQLデータベース&ユーザー作成 CREATE DATABASE croogo; GRANT ALL PRIVILEGES ON croogo.* TO user@localhost
ブックマークチュートリアル¶ このチュートリアルは簡単なブックマークのためのアプリケーション (bookmarker) を作ります。 はじめに CakePHP のインストールを行い、データベースの作成、 そしてアプリケーションを素早く仕上げるための CakePHP が提供するツールを使います。 必要なもの: データベースサーバー。このチュートリアルでは MySQL サーバーを使います。 データベースを作成するための SQL の知識が必要です。CakePHP は、それを前提としています。 MySQL を使用するとき、 PHP で pdo_mysql が有効になっていることを確認してください。 基礎的な PHP の知識。 始める前に、最新の PHP バージョンであることを確認してください。 最低でも PHP 5.6 (CLI) 以上をインストールしてください。 あなたのウェブサーバーの PHP
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブ、はてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2007年11月26日に公開されたもので、当時の徳丸の考えを示すものを、基本的に内容を変更せずにそのまま転載するものです。 補足終わり 本稿ではSQLインジェクション対策として、SQLのエスケープ処理の方法について検討する。 最近SQLインジェクション攻撃が猛威を振るっていることもあり、SQLインジェクションに対する解説記事が増えてきたようだが、対策方法については十分に書かれていないように感じる。非常に稀なケースの対応が不十分だと言っているのではない。ごく基本的なことが十分書かれていないと思うのだ。 SQLインジェクション対策には二通りある。バインド機構を使うものと、SQLのエスケープによるものだ。このうち、SQLのエスケープについて、十分
MySQLはとても気ぃつかい屋さんである。我々が投げる多少あいまいな指示も頑張って解釈し、なんとか文句を言わずに実行してみようと挑戦してみてくれる。 今日はそんなMySQLがケナゲに解釈してくれる自動変換について紹介しようと思う。この自動変換、ケナゲなMySQLの奥ゆかしさ故、出した指示と異なる動作をされたことに気がつかないことがある。ここで紹介する6つの自動変換をしっかり脳ミソにたたき込んでおけば、無用なトラブルにハマる時間も減るかもしれない。 1.[数値] 範囲外の数値は頭を押さえつけられる intやsmallint、bigintなどの数値型には、扱える範囲が決まっている。例えばint型なら最大21億ちょっとだ(unsignedの場合は43億弱)。これより大きい数字を登録するよう指示を出すとMySQLはどうするか。そう、頑張って入れられるところまで入れてくれるのである。「入れられるとこ
ホーム / ご案内 / パフォーマンス1000%UP!PHPでMySQLのDB処理を行うと重いときに行うパフォーマンス施策~基礎編~ DBを使うとやたらと重くなって仕方がない。。。 個別案件でヘルプが必要な方は Linuxに関するアドバイスを行います!WEB・メール・DB・DNSサーバーどんなことでも! そうお悩みのプログラム初心者の方も多いのではないでしょうか。 いろいろQ&A的なサイトを見ていても初心者の方の多い質問の一つが【重い】という内容です。 しかしながら、インデックスはかかっているのか?とか、メモリが足りないとか。。。確かに、そういった要件はあるかもしれませんが、もっともっと初歩的なところでつまづいていませんか? そういう初心者のためにこの記事を書き残しています。 おそらく、バージョンやDB自体が何であるとか、そういった問題の前に基礎的なところができていない方が多いかもしれない
【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。PDO に関しては大きく変わっていない部分が多いとは思いますが, PHP 8.x 以降での動作保証はありません。 あらかじめ読んでおきたい記事 Qiita - 【PHP超入門】クラス~例外処理~PDOの基礎 by @7968 初心者がやりがちなミス 以下のどれかに1つでも当てはまるコードは見直す必要があります.付録にリンクを貼っておきましたので,「該当するかも?」という人はクリックして飛んで読んでください.太字にしてあるものは脆弱性に直結する危険度の高いものです. mysql_query などの非推奨関数を利用している SET NAMES あるいは SET CHARACTER SET などで文字コードを指定している そもそもデータベース
社内で、SQLインジェクションについてあらためて原理・原則から議論したいねという風潮がにわかに起こったので、ひとまずは叩き台として僕の方でまとめて皆で議論しましょうというわけで、以下のような資料を作成した。 社内勉強会用の資料なのだけど、僕は別にセキュリティに詳しいわけでもないし、ましてやPHPのことは素人なので、外部の識者にレビューしていただいて、できるだけ正しい知識に基づいて議論できればと思い、まずスライドを先行公開することにした。そうしたところ、Twitter上で多数の識者よりいろいろとご指摘いただいて、少くとも決定的におかしな内容にはなっていないものになったようだ。ありがとうございます。 僕らの職務のひとつに「セキュリティ関連」というものも謳われているので、そのあたりの知識普及・基盤整備についても、仕事のひとつとして行っている。先にも書いた通り、僕自身がその点についてよく理解できて
OTA配布が手軽にできるオープンソースのPHPスクリプト書きました。TestFlightが様々なポリシーで使えない方向けに書きました。 ku-suke/SimplePHPAdhocServer · GitHub これはなに? USBケーブルを繋がずに、開発中のアプリを実機に配布できるPHPスクリプトです。自前のサーバに設置してご利用ください。developmentプロファイルでもdistributionプロファイルでもenterpriseプロファイルでも使えます。enterprise以外はあくまでUDID登録済みの実機だけです。 動作確認というか必要条件 PHP 5.2以降 MySQL 5.0以降 USBで実機にアプリをインストールすることが出来る環境(Xcode/Provisioning profile etc) ライセンス 個人で書いたのでMITで自由に使えるよ!同梱ライブラリのライセ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く