NEST :: laboratory RSSフィード

引っ越しました。

http://ginpen.com

基本的にこちらの内容は残しておきます。
ただいくつかの記事については向こうへ持って行こうと思っています。


カレンダー
<< 2007/07 >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

本家はこちら: NEST http://nest.l-w-l.info

. archive / . bookmark

HTML, CSS, JavaScript中心に興味あることあれこれを扱う技術系blogです。昔はそうでなかったので、古いのには妙なものも混ざってるかもしれません。

なお全ては自分が理解した事の覚書的文書であるため、事実に反する場合があります。気付かれた方はご指摘頂ければと思います。

書いてる人 : 高梨ギンペイ@横浜でSEやってます。Twitter→@ginpei_jp

2007/07/03

[][] MySQLのauto_incrementの値を1に戻す方法

試験が終わってさあリリースだ、という時に全てをdeleteしても、auto_incrementのカウンタは戻らない。dropしてcreateし直すのはあまり現実的ではない。

大した実害はないと思うがどうにも気持ちが悪いぞ、という人は下記のようにしてカウントをリセットできる。

alter table <<tablename>> auto_increment=1;

数値を変更すれば、逆に大きな数値から始める事も可能。

参考:

MySQLで、auto_incrementの値をリセットする方法を教えて下さい… - 人力検索はてな

[][] PHP+MySQLで、テーブルのレコード数を得る方法

次のSQL文でレコード数を数える事ができる。

select count(*) from <<tablename>>;

結果:

mysql> select count(*) from mytable;
+----------+
| count(*) |
+----------+
|      123 |
+----------+
1 row in set (0.01 sec)

これをPHPで利用する場合は以下のようにする。

// レコード数を調べる
$result = mysql_query("select count(*) from mytable", $link);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
print("<p>全 " . $row["count(*)"] . " 件登録されています。</p>");

SQL文にwhere句を付け加える事も可能。

[] MySQLに日本語が入らない

日本語をinsertするとwarningが出て、文字列の日本語出現場所以降が無視される。

mysql> insert into mytable values('ほげ');
Query OK, 1 row affected, 1 warning (0.02 sec)

mysql> show warnings;
+---------+------+-------------------------------------------+
| Level   | Code | Message                                   |
+---------+------+-------------------------------------------+
| Warning | 1265 | Data truncated for column 'hoge' at row 1 |
+---------+------+-------------------------------------------+
1 row in set (0.02 sec)

挿入先の型はvarchar(255)インストール時にUTF-8デフォルトで使用するようにしたはずなんだけど。

なんだろう。

以下追記(17:28)

UTF-8で書いたPHPからinsertしたところ、問題なくレコードが追加された。どうやらクライアントが悪かったらしい。

でもstatusでもshow valiablesでもクライアントのcharsetはutf8になっている。どういう事なんだろう。コマンドプロンプトが悪いのか?

2007/08/26 その後解決→ MySQLクライアントから日本語を表示させたい - NEST :: laboratory