
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.iniの修正
-
mysqlへ編集の為に、NOとpasswo...
-
【MySQL】時間を格納したり計算...
-
like句を使って日本語を検索す...
-
MySQLで先頭の0が省略されてし...
-
日本語をinsert時に文字化け
-
SQLServerのコンピュータ名変更...
-
プライマリーキーの昇順でソー...
-
mysql(mariaDB)の格納文字数は...
-
PHPからmySQLに接続できない
-
FedoraCore4+php5.0.4+Mysql4.1...
-
Excel VBA SelectedItems
-
誤って全てのユーザを削除して...
-
mysql_select_dbの戻り値
-
now()
-
教えてgoo旧い質問から見る方法
-
PHP+MySQL 4.1.20における文字...
-
OSの最大ファイルサイズについて
-
ユーザ追加して、パスワード無...
-
MySQL 日本語表示 日本語入力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LOAD DATA LOCAL INFILE
-
クラスファイルでエラーが出て...
-
mysqliについて
-
mySQLに詳しい兄貴来てください
-
mysql_queryでのdelimiterの設...
-
「addslashes」と「htmlspecial...
-
sqlite_escape_stringのアンエ...
-
PHPでMySQLのデータを表示したい
-
Linuxで、Pearコマンドが使えな...
-
MySQLとPHPを使用した「何分前...
-
さくらVPS+CakePHPがうまく動...
-
接続ができません
-
MySQLカラム名は日本語と英数字...
-
副問合せにLIKE文を使う方法は...
-
列数が多いと結果が行単位に改...
-
like句を使って日本語を検索す...
-
SQLのVARCHARとVARCHAR2の違い
-
VBAで変数内に保持された二次配...
-
mysqlがインストールされている...
-
ODP.NETのバージョン確認
おすすめ情報