• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mysqliについて)

mysqliについて

このQ&Aのポイント
  • PHP初心者のためのmysqli活用法
  • PHP 5.2.5でもmysqliを安心して使える方法
  • mysqliでMYSQLに接続する手順と代表的な接続コードの例

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.5

mysql_ を mysqli_ に変えるだけでほとんど対応できます。 引数の順番が変わっていることはよくあるので、マニュアルでチェックしてください。 Google検索すればだいたい引っかかります。

flash0
質問者

お礼

回答ありがとうございます 何とかmysqliで動くようになりました。ありがとうございました

その他の回答 (4)

回答No.4

> To_aru_Userさん あ、確かにご指摘の通りですね。 むしろ、htmlspecialcharsがないことのほうが、問題あるかもね。

flash0
質問者

補足

htmlspecialcharsはパフォーマンスのことを考えてデーターベースに入れる前に実行してます(使い方は間違っていますが)

noname#244856
noname#244856
回答No.3

kosukejlampnetさんの回答に補足。 PDOでUTF-8を一貫して使用する分にはPHP5.2でも問題ありません。 しかし、オブジェクト生成時の文字セット指定の方法が異なるので注意してください。 http://me.beginsprite.com/archives/889 こちらで紹介しているリンクも参考にどうぞ。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10111723870 なお、指摘されている「PDOのバグ以前の話」について。 sprintfで%dを指定しており、(配列を含み)どんな値がPOSTされてもintに変換されるのでセキュリティホールはありません。

flash0
質問者

お礼

いつも頼ってばっかりで申し訳ないのですが 質問にあるコードをmysqliで手続き型へ書き直していただけませんか? 素人なのでオブジェクト型はもう少し学んでからにします

回答No.2

先の質問で指摘されたPDOのバグというのは↓の記事が出典だろうけど・・・。 http://www.tokumaru.org/d/20100701.html#p01 特殊な条件化で・・・。という条件付です。 一貫してUTF8を利用する場合には発生しない現象です。 ちょっと聞きかじった程度で十分に理解していない人も多いですからねぇ。 人の話を鵜呑みにせず、ご自身で検証することが何よりです。 ところで、質問文に書かれたコードを書いているようではPDOのバグ以前の話・・・。 $start=1; $hyouji=10; が絶対に固定なら問題ないけど、明らかにページングの処理ですよね。外部から来る値をエスケープなしに利用しているのは無施錠で外出するようなもの・・・。 あたかもドアに鍵をつけずに防犯カメラを買おうとしているみたいです。 サーバーの文字コードがUTF8でDBもUTF8で、ファイルの文字コードもUTF8であるなら素直にPDO使ったほうがよっぽど安全。

flash0
質問者

お礼

PHPADMIN関係の文字コードはUTF8です。phpもUTF8です  コアサーバーのデーターベースの文字コードがUTF8がありませんでした!なのでサーバーはEUC-JPになってます。(EUC-JP、UNICODE、SHIFT_JIS)の三つしかないです 文字化けはとくにないすが・・・ ご指摘のとおりページングです。しかし、回答者のためにコードを短くしました。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

まず、mysqliが使える環境かどうかはphpinfo()などで確認しておいてください mysqliは手続き型とオブジェクト指向型に二種類のやり方があります。 とりあえずmysql関数からの移行がメインであれば手続き型でよいでしょう。 ほとんどのmysql関数をmysqliに書き換え、引数の順番を調整するだけで さほど問題なく移植できると思います。 ただし手続き型は非推奨なのでできればオブジェクト指向型に変更された方がよいでしょう 詳しくはマニュアルを参照されると良い例がたくさん出ています

flash0
質問者

お礼

回答ありがとうございます 素人なので簡単に導入できるなら手続き型でもいいのですがどうすればいいかわかりません mysqlをmysqliにする・・だけはわかるんですが

関連するQ&A