PHP初心者です
PHP 5.2.5
MySQL 5.1.22
レンタルサーバーのphpのバージョンが php5.2.5ではpdoがバグで使えないらしいのでmysqliを使おうとしています。PHP 5.2.5でもmysqliはバグありますか?
mysqliでMYSQLに接続するにはどうすればいいのでしょうか?
いままではこんな感じでしたがmysqliにするとどんなコードになるのでしょうか?
$link=mysql_connect('localhost', 'user', 'pass')or die(mysql_error());
mysql_select_db(user');
mysql_query('SET NAMES UTF8');
$start=1;
$hyouji=10;
$recordSet = mysql_query(sprintf('SELECT * FROM hoge2 ORDER BY id LIMIT %d, %d' , ',$start,$hyouji));
<?php
while ($table = mysql_fetch_assoc($recordSet)) {
?>
<tr>
<td><?php print($table['id']); ?></td>
<td><?php print($table['name']); ?></td>
</tr>
<?php
}
?>
No.3
- 回答日時:
kosukejlampnetさんの回答に補足。
PDOでUTF-8を一貫して使用する分にはPHP5.2でも問題ありません。
しかし、オブジェクト生成時の文字セット指定の方法が異なるので注意してください。
http://me.beginsprite.com/archives/889
こちらで紹介しているリンクも参考にどうぞ。
http://detail.chiebukuro.yahoo.co.jp/qa/question …
なお、指摘されている「PDOのバグ以前の話」について。
sprintfで%dを指定しており、(配列を含み)どんな値がPOSTされてもintに変換されるのでセキュリティホールはありません。
いつも頼ってばっかりで申し訳ないのですが
質問にあるコードをmysqliで手続き型へ書き直していただけませんか?
素人なのでオブジェクト型はもう少し学んでからにします
No.2
- 回答日時:
先の質問で指摘されたPDOのバグというのは↓の記事が出典だろうけど・・・。
http://www.tokumaru.org/d/20100701.html#p01
特殊な条件化で・・・。という条件付です。
一貫してUTF8を利用する場合には発生しない現象です。
ちょっと聞きかじった程度で十分に理解していない人も多いですからねぇ。
人の話を鵜呑みにせず、ご自身で検証することが何よりです。
ところで、質問文に書かれたコードを書いているようではPDOのバグ以前の話・・・。
$start=1;
$hyouji=10;
が絶対に固定なら問題ないけど、明らかにページングの処理ですよね。外部から来る値をエスケープなしに利用しているのは無施錠で外出するようなもの・・・。
あたかもドアに鍵をつけずに防犯カメラを買おうとしているみたいです。
サーバーの文字コードがUTF8でDBもUTF8で、ファイルの文字コードもUTF8であるなら素直にPDO使ったほうがよっぽど安全。
PHPADMIN関係の文字コードはUTF8です。phpもUTF8です
コアサーバーのデーターベースの文字コードがUTF8がありませんでした!なのでサーバーはEUC-JPになってます。(EUC-JP、UNICODE、SHIFT_JIS)の三つしかないです
文字化けはとくにないすが・・・
ご指摘のとおりページングです。しかし、回答者のためにコードを短くしました。
No.1
- 回答日時:
まず、mysqliが使える環境かどうかはphpinfo()などで確認しておいてください
mysqliは手続き型とオブジェクト指向型に二種類のやり方があります。
とりあえずmysql関数からの移行がメインであれば手続き型でよいでしょう。
ほとんどのmysql関数をmysqliに書き換え、引数の順番を調整するだけで
さほど問題なく移植できると思います。
ただし手続き型は非推奨なのでできればオブジェクト指向型に変更された方がよいでしょう
詳しくはマニュアルを参照されると良い例がたくさん出ています
回答ありがとうございます
素人なので簡単に導入できるなら手続き型でもいいのですがどうすればいいかわかりません
mysqlをmysqliにする・・だけはわかるんですが
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- PHP PHPでMysqlにデータがあるかどうか判別したい 1 2023/03/02 11:48
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- PHP PHP MySql ページング 2 2022/09/20 06:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpとmysqlを使っています。
-
mysqliについて
-
ページング実装で2ページ目以...
-
接続ができません
-
VBAで変数内に保持された二次配...
-
like句を使って日本語を検索す...
-
SQLのVARCHARとVARCHAR2の違い
-
ヌル値は記憶容量を必要としな...
-
LIMIT で条件を満たしているの...
-
ERROR 1054 (42S22) 原因不明です
-
ERROR 1045 (28000) (using pas...
-
Usage: \\.<filename> | sourc...
-
文字コードMS932(Windows-31J...
-
ODBC接続で全角文字が文字化け
-
MySQLに外部PCから接続できない
-
JDBCドライバについて
-
列数が多いと結果が行単位に改...
-
ADOのバージョンを確認する方法
-
phpからinsertできない
-
副問合せにLIKE文を使う方法は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クラスファイルでエラーが出て...
-
mysql_real_escape_string?
-
ページング実装で2ページ目以...
-
phpとmysqlを使っています。
-
PHPのサンプルコードが意図した...
-
php mysqlの文字化け(レンタル...
-
OpnePNEの構築において
-
php+mysqlでINSERTで文字化けし...
-
Flash8のユニコードについて。...
-
Linuxで、Pearコマンドが使えな...
-
mysqliについて
-
for($i=1; $i<hoge; $i++)
-
PHPからmySQLへINSERT文の実行
-
mySQLに詳しい兄貴来てください
-
PHP でMysqlを使用して日本語を...
-
mysqlでphpinfoと実際のバージ...
-
FORMからPHP処理
-
Mysql&PHPのアップグレードに...
-
イメージデータを文字列に変換...
-
mysql_queryでのdelimiterの設...
おすすめ情報