トップページ⇒php
988コメント357KB

mysql ヘルプ!

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名無しさん@お腹いっぱい。02/01/22 16:08ID:kMbsTQE3
リモートから家(常時接続)のmysqlサーバにつなげません
状況を詳しく書きます
PHPが動くプロバイダーのディレクトリにおいた自分の家の
mysqlサーバを操作するPHPに
$db = mysql_connect("mysqlサーバのip:3306","ゆーざ","ぱす");
と書いたのですが、駄目でした。
どうすればいいのでしょうか?
0808nobodyさん04/12/08 16:29:57ID:???
MySQLって、1つのデータベースの中に作成できるテーブルの最大数って、
何か制限などあるんでしょうか?
0809nobodyさん04/12/08 16:45:04ID:???
>>808
はい
081080304/12/08 18:58:45ID:???
mysqldのエラーログというのは、
そこを見ればいいのでしょうか…(すいません
081180304/12/08 19:00:30ID:???
※↑打ち間違いました

mysqldのエラーログというのは、
どこを見ればいいのでしょうか…
0812nobodyさん04/12/09 15:32:33ID:fa9vd1ze
mysqlを止めるにはどうすればいいでしょうか?
起動するたびに立ち上がって染まします。
0813nobodyさん04/12/09 15:37:29ID:???
>>812
サービスの自動起動をやめたら?
0814nobodyさん04/12/09 16:05:29ID:???
>>811
どうやってインストールしたかによるが
拡張子が .err のファイルがどっかのディレクトリにできてないか?
0815nobodyさん04/12/20 07:25:09ID:FA8OSGsZ
ローカルな環境でMySQLとPHPの練習をしているのですが
PHPからMySQLへのアクセスができません。
エラーメッセージは
mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in
となっています。

環境
WindowsXP
PHP4.3
MySQL4.1.8
Apache1.3
文字コードはMySQL以外はShift-JISにしています。
MySQLはインストールしてrootのパスを決めた以外は変更していません。
コマンドラインからのroot権限でのアクセスはできています。
0816nobodyさん04/12/20 09:31:17ID:???
>>815
PHP4.3.9以前はMySQL4.0とMySQL4.1のライブラリが別になってるんだよ(4.3.10では一緒になったらしい)
libmysqli.dllをシステムディレクトリにコピー
0817nobodyさん04/12/20 16:48:07ID:???
>>817
http://dev.mysql.com/doc/mysql/ja/Password_hashing.html
に該当。

でもこういうところに気が付かない(読まない)人は、
質問が出た時点で、回答としては「暫くMySQL4.0.x使っとけ」
とするのが現時点では最も正しい答えなのかも。
MySQl4.1.x使うなら、常に情報の入手に気を配れ。
081881504/12/20 17:48:46ID:???
>>816,817
ありがとうございます。
おとなしくMySQL4.0を使うようにします。
0819nobodyさん05/01/01 08:13:01ID:QrQCkT/a
PHPとMySQLで掲示板を作っています。
コマンドラインで
select count(*) form bbs_table;
と実行するとちゃんと「11」という結果が返ってくるのですが
PHPでmysql_query($sql, $conn);と実行すると
なぜか「8」(Resource id #8)と返って来ます。
当然同じデータベース・同じテーブルでやっているのですがどうしてでしょうか?
0820nobodyさん05/01/01 09:17:19ID:QrQCkT/a
勘違いしていたっぽいです。
$result = mysql_query("select count(*) from bbs_table");
$row = mysql_fetch_row($resutl);
print($row[0]);で「11」と表示されました。
これで私の思っている通りの結果にはなりましたが
データベースのカラム数(掲示板で言うとレス数)を求めるには上記の処理で合っているでしょうか?
0821nobodyさん05/01/01 16:41:48ID:???
>>819
> なぜか「8」(Resource id #8)と返って来ます。

この8というのはリソースのIDのことだよって書いてあるのに
何で件数だと思ったのか、こっちが聞きたいくらいですから。
残念!
0822nobodyさん05/01/02 17:22:22ID:MfYqAlNX
MySQLで論理型(true,false)を格納する場合、皆さんはどの型を使っていらっしゃいますか?
PHPで使っているのですが、他のDBでも使えるようにif ( $a )の形式でチェックできるように
したいのですが、ENUM('true','false')だとチェック時にif( $a == 'true' )のように
文字列比較をしなくてはならないのでTINYINTで0か1が良いのかとか色々と考えています。

もちろんこれでやればできるのですが、経験豊富な方に伺いたいと思いましてどうかよろしくお願い致します
0823nobodyさん05/01/02 18:35:03ID:???
>>822
BOOLEAN型。要するにTINYINT(1)
0824nobodyさん05/01/02 21:41:15ID:???
>>822
MLとかでもたまに話題になるけど、TINYINT(1)が一番適してるってことになってる。
082582205/01/05 00:15:38ID:???
確かにTINYINTなら他のDBでも統一的に出来ていいですね
ありがとうございましたm(__)m
0826nobodyさん05/01/05 14:47:11ID:???
開発環境Java言語で、tomcatからMySQLを使用してるのですが、
java側からはMySQLに、UnicodeをShift-JISに変換して書き込めるのですが
MySQL側からデータをJava側に読み込むとShift-JISからUnicodeに変換
されずに、文字化けしてしまいます。
データを書き込めるのですが、それを読むと文字化けしてしまう状況です。
一応、JDBCドライバを呼び出す時は
jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=sjis
&mysqlEncoding=sjis
とし、
my.iniにも
default-character-set=sjis
と記述しています。
それでも文字化けしてしまうのです。
無事に変換できて文字化けしないようにするにはどうすればよいのか
でどうか対処法を教えてくださいませ。
0827nobodyさん05/01/08 07:40:40ID:???
開発環境PHP、MySQLを使ってfreemailの判定を行っています。
テーブルfreemailの中は空。
$mailにはフォームから登録したメールアドレスが入ってるとし、仮にaa@bbとします。

$str_mail=strstr("$mail","@");
$str2=mysql_escape_string($str_mail);
$rs=mysql_query("select * from freemail where freemail='$str2'");
$res=mysql_fetch_array($rs);
$f_res=$res['freemail'];

この状態で
$str_mail、$str、$f_resをそれぞれprint文で出力すると。
全部が同じ出力になる…この場合@bbになるとしたら、原因は何処にありますか?
これは判定だけで、テーブルfreemailに追加はしてないです。
0828nobodyさん05/01/08 07:42:35ID:???
ミス…
print文で出力するのは
$str_mail
$str2
$f_res
です。
0829nobodyさん05/01/08 12:23:13ID:???
ごめんなさいすっごい自己解決しました。
0830nobodyさん05/01/15 00:33:23ID:NZnuK1eg
PHP+MySQLでプログラムを作ろうとしてるんでずか、共用鯖なのでDB接続パスワードを
直接PHPファイルに書くのに抵抗があります。
聞く話によるとMD5ハッシュ化したパスワードで接続することが出来るらしいのですが、
検索してもやり方がわかりませんでした。
どのようにすればMD5ハッシュ化したパスワードで接続できるのでしょうか。
0831nobodyさん05/01/15 08:45:26ID:???
>>830
ハッシュ化したパスワードで接続できるほうが危ないと思うんだけど。
ハッシュはサーバのどこかに保存されてるので見られる可能性がある
生パスはサーバには無いので絶対に見られない
0832nobodyさん05/01/15 10:54:23ID:NZnuK1eg
>>831
共用鯖でmod_php利用なのでアクセス権を604としなければならなく、
同じ鯖の人から見ようと思えばphpの内容が観覧できてしまいます。
なので、生パスワードをphpに記載するほうが怖いんですが・・・
0833nobodyさん05/01/15 11:46:39ID:???
>>832
生だろうがハッシュだろうが、スクリプトに記述してしまうならいっしょ。
mod_phpならsafe-modeの制限に頼るしかない。
0834nobodyさん05/01/15 12:26:24ID:???
>>833
少なくとも生パス抜けないから一緒ではないと思うが。
0835nobodyさん05/01/15 12:39:43ID:???
>>834
照合する側がハッシュで照合してるならともかく
(MySQLサーバ側は確かにそうしてるが)
PHPのスクリプトでMySQLにアクセスする部分のパスワードを
どこぞに列挙するなら、それが生だろうがハッシュ化されてようが
普通にパスワードとして使えるのだから一緒でしょ。

列挙するパスワードをどこか他の認証と共用してるシステムなら
共用してる部分については「生パス抜けない」ということになるけど。
0836nobodyさん05/01/15 21:33:17ID:???
MD5は復号できんけど?
0837nobodyさん05/01/16 01:46:09ID:???
>>836
そうだね。


でも複合できるかどうかは関係ない、てことが分かってないようで・・

そんなに気になるなら CGI で 600 で動かせばいいじゃん。
0838nobodyさん05/01/18 03:47:13ID:KC0Yllm6
phpを使って、
mysqlのBLOBにバイナリデータを入れる時は、
普通にmysql_escape_string()しておくだけで問題ないのでしょうか?
なんとなくおかしなクエリになってしまうケースがありそうで恐いのですが…
0839nobodyさん05/01/18 11:58:44ID:4Eo/wmNT
環境:mysql Ver 11.18 Distrib 3.23.58, for redhat-linux-gnu (i386)

自動的に(人間がmysqlを立ち上げないで)データベースとその中のテーブルを作る手っ取り早い方法はどんなものでしょうか?
もちろんデータベース名、テーブル名とそのフィールドは固定です。

0840nobodyさん05/01/18 14:20:14ID:???
>>839
mysqlにそのDBやテーブルのDDLを記述したファイルを
リダイレクトでぶちこんで作成。
0841nobodyさん05/01/19 21:46:19ID:JHcmHOhC
ある値を入れるとき、その値が入っていない場合は挿入、入っている場合は更新したいのですが
単純に思いつくのは
・SELECTで値が入っているかどうかを調べる
  入っていない場合 -> INSERT
  入っている場合 -> UPDATE

のように2回クエリを送らなくてはならないため、もう少し良い方法があればと思いまして
ご存知の方がいらっしゃいましたらどうかよろしくお願い致します。
0842nobodyさん05/01/19 21:56:32ID:???
replace into
但し
内部的には
DELETE→INSERT
だからunique制約とかprimaryの制約がないとだめだけど。
084384205/01/19 22:00:53ID:???
早速、調べて実行してみたいと思います
ありがとうございました
0844nobodyさん05/01/21 11:23:46ID:Z6ezIjZ/
ばかばかしい質問かもしれないんですが
bluequartz上でC/C++ CGIがどうしても動かせなくて困ってます。

gcc バージョン 3.3.2 20031022 (Red Hat Linux 3.3.2-1)

コンパイルしたファイル(xxx.cgi)はコマンドラインからはちゃんと動くのですが、
これをブラウザから見ると、 「 xxx.cgi このファイルをダウンロードしますか?」となります。
もちろんapacheはちゃんと動いています。

これを回避してブラウザから
xxx.cgiの出力を見るようにするにはどこを変更すればよいのでしょうか
0845nobodyさん05/01/21 15:34:27ID:???
>>844適切なヘッダを吐いてから出力。
HTMLならtext/htmlとか。
0846nobodyさん05/01/21 15:53:20ID:???
>>844
マルチ?
すれ違いに気づいただけだよね。
0847nobodyさん05/01/28 19:38:24ID:???
>>834,836

トンチンカンでワロタ
0848ぐぐっても見つけられんかった05/01/28 21:12:40ID:ox6Cyfvr
mysql_errnoで1046が吐き出されるんですが、
考えられる原因は何でしょうか。。。
0849nobodyさん05/01/28 21:16:20ID:???
>>848
DBがありません
0850nobodyさん05/01/28 22:12:48ID:???
>>848
Error#1046,ER_NO_DB_ERROR,No Database Selected,データベースが選択されていません.
0851nobodyさん05/01/29 12:52:05ID:???
phpMyAdminについて質問します

−−−環境−−−
OS:windows2000 Pro
DB:mysql 4.1
PHP:5.0.3 SJIS設定
MyAdmin:2.6.1
サーバー:IIS
DocRoot:D:\WEB

MyAdminの設定で Language を japanease に設定をすると
Fatal error: Call to undefined function PMA_reloadNavigation() in D:\WEB\CGI_BIN\phpMyAdmin\header.inc.php on line 132
のメッセージが表示されます
他の言語に設定するとエラーは発生しません
インクルードファイルの読み込み出来ていないのかと思ってファイルの最後に
echoを書いてチェックしてみると読み込みは出来ています

テーブルを追加する最にコメントに日本語が入っていると
Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in D:\WEB\CGI_BIN\phpMyAdmin\libraries\string.lib.php on line 112
のエラーも表示されます

どのように設定したらいいか教えてください
都合で今はIISしか使えない状況です
0852nobodyさん05/01/31 00:03:31ID:BLcpMt62
現在のパスワードに
"'() の文字を使ってるのを修正する場合、どうすればいいのでしょうか。
set password for root="'()('newpassword');
でできないっす
0853EK05/01/31 00:04:33ID:pCNLnhtE
超くだらない質問なんですが,助けてください.

mySQLで

| name | tel | email |
-----------------
| hoge | 090 | [email protected]|
| moe | 090 | [email protected]|
| are | 080 | [email protected]|
.....

とかの構造を,

| tel | name | email |
-----------------
| 090 | hoge | [email protected]|
| 090 | moe | [email protected]|
| 080 | are | [email protected]|
.....

に変更するにはどのようにすればいいのでしょう?

0854nobodyさん05/01/31 01:49:23ID:???
>>853
SELECTするときに順序かえる。

データベースを理解して無いみたいだが、
気になるならALTERすれば?
0855EK05/01/31 08:49:37ID:abXFv+ha
ALTERの方法が知りたいです.
0856nobodyさん05/01/31 11:36:27ID:???
>>855
マニュアル嫁としか言えん
0857nobodyさん05/02/01 06:06:35ID:Ous9jt79
4.1をインスコしたんですけど(コンフィグ設定はsjis選択)、
コマンドプロンプトから2バイト文字のデータを入れると文字化けします。
jspを使ってブラウザからsjisで入れたり出したりする分には
いまのところ正しくできてるっぽいのですが、
そのデータをコマンドプロンプトでみるとやはり文字化けしてます。

4.0を使ってるときはコマンドプロンプトで出し入れするのも
データを見るのも文字化けせず大丈夫だったんですが、
何がいけないのでしょうか?直す方法はありますでしょうか。
085885705/02/01 06:50:26ID:Ous9jt79
書き忘れましたがW2Kです。よろしくお願いします。
0859nobodyさん05/02/01 07:04:49ID:???
>>857
MLのログやMyNAのFAQ嫁
0860nobodyさん05/02/01 08:56:41ID:???
MySQL 3.23.58を使い始めた者です。

+--+--------+-----+
| id | name | price |
+--+--------+-----+
| 01 | hoge | 100 |
| 02 | fuga | 200 |
| 03| puni | 200 |
| 04 | hage | 100 |
……

ここで、価格:100(2件)〜200(2件)というように
最低価格、最高価格とその件数を導きたいのですが、
どのようなクエリをかけばよろしいでしょうか。

今はMAX()とMIN()で最大・最小値は求められるのですが
その件数が上手く求められないのです。

よろしくお願いいたします。
0861nobodyさん05/02/01 15:17:48ID:???
>>860
COUNT()
0862nobodyさん05/02/01 15:17:47ID:???
SELECT ( bin(6) / bin(4) ) - ( FLOOR(bin(6) / bin(4) ) ) , ( bin(2) / bin(4) ) - ( FLOOR(bin(2) / bin(4) ) )
これを計算してみると 0.10 0.10 と2つ等しい結果が得られるのですが、
SELECT * FROM `table` WHERE ( bin(6) / bin(4) ) - ( FLOOR(bin(6) / bin(4) ) ) = ( bin(2) / bin(4) ) - ( FLOOR(bin(2) / bin(4) ) )
というふうにWHEREにした時だけ何故か等しくならず、テーブルの中身が全く表示されません。
これはSQLのバグでしょうか?それとも何か間違っているのでしょうか?
2進法計算で込み入っていて申し訳ないのですが、どなたかご存知でしたら教えて下さい。
086385705/02/01 17:25:28ID:Ous9jt79
>>859
my.iniをsjis設定にしてもかわらず。
コマンドプロンプト立ち上げるたびに「set names sjis;」するしか
ないのでしょうか。
0864nobodyさん05/02/01 19:40:16ID:???
>>863
いや、それは面倒くさいやろ。
クライアントライブラリのエンコードを自分の欲しいものに
きちんと指定して再度コンパイルでOK。
0865nobodyさん05/02/02 04:43:23ID:???
>>864
そうですか。それはちょっと敷居が高い…
とりあえずブラウザから使う分には問題なさそうだから余裕ができたらチャレンジします。
ありがとうございました。
0866nobodyさん05/02/02 05:05:35ID:TSxm2UhN
phpMyAdminで
char(16)のカラムを作ろうとしてもvarchar(16)になりますが
何故でしょうか?
0867nobodyさん05/02/02 09:49:46ID:???
>>866
暗黙の型変換。詳細はマニュアル嫁
0868nobodyさん05/02/04 00:22:56ID:FzOGXEjc
Apache+PHP+Mysqlをいれて
phpmyadminをいれて、接続したら真っ白な表示がされるだけです。
どのあたりを見ればいいのでしょうか?
0869nobodyさん05/02/04 00:26:44ID:???
>>868
PHPのエラーログ。つかエラーを表示させるようにPHP設定しなさい
0870nobodyさん05/02/04 00:35:52ID:FzOGXEjc
すいません。の設定はどこでしょうか?
0871nobodyさん05/02/04 01:08:16ID:???
>>816
オラクルなら

select 項目 , count(*) from テーブル名 group by 項目

0872質問です05/02/11 01:47:17ID:bxpVru70
MySQLでテンポラリテーブルを見るにはどうしたらいいのでしょうか?
もちろん、select文で表示はできるのですが、

show tables;

では見れないですよね?

そもそもメモリ上にあるテンポラリテーブルは見れない仕様なのでしょうか?
0873nobodyさん05/02/18 01:17:47ID:oRUItyUu
1クエリで、
あるカラムをインクリメントして、その値を取得することは可能でしょうか?
0874sage05/02/24 23:50:55ID:MSi8NK1E
ロックの権限の設定はglantでできるんですか?
ロックの権限の確認方法はどうすればできますか?
0875nobodyさん05/02/25 20:01:28ID:QqsT661L
助けてください。
本日 RedHut9にMysql4.1.10をrpmでインストールしました。
現在STATUSを表示すると
Connection id: 15
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 4.1.10-Max-log
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: ujis
Client characterset: ujis
Conn. characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
セグメンテーション違反です
となってしまします。

どうしたらいいのでしょう・・・
0876nobodyさん05/02/25 23:04:54ID:???
MySQLのユーザーをスクリプトなどで自動的に追加できるよう出来ませんか?
CGIでコマンド発行してみても受け付けて貰えなかったです。
PHPのMySQL関数には、ユーザー作成に関する物がないみたいですし。

宜しくお願いします
0877nobodyさん05/02/25 23:12:53ID:???
>>876
普通にmysqladminで発行できるが...マニュアル100回読んできな。
mysqlにユーザ作成コマンドをぶち込んでも同様にできると思うけど、
明確にadmin操作と一般操作は分けといた方が管理上は良い。
0878nobodyさん05/02/25 23:26:47ID:???
>>877
mysqladmin ユーザ追加のコマンドがありましたっけ?
マニュアル見てもその辺り載ってないんですが。

CGIやPHPでGrantコマンドを投げても実行されないんで困ってます。
0879nobodyさん05/02/25 23:57:23ID:???
>>878
サーバー管理者に聞くか、マニュアルを100回読むのがいいと思う。
接続に使用してるmysqlアカウントにgrant権限がないとかそういうことでしょ。

あと、マルチはどこへいっても嫌われるぞ。
0880nobodyさん05/02/26 00:21:18ID:???
>>878
ごめん、adduserコマンドは俺拡張(中身はGRANT)...
回線切っ首。

スクリプトからGRANT発行して駄目なのは、
adminのアカウントを使ってないためか、
GRANT権限に制限のあるmysqlユーザだとか、その辺では?
コマンドライン上で同じものを指定して試行してみれ。
0881nobodyさん05/02/26 00:45:55ID:???
>>880
ありがとうございます。

練習用として自宅サーバに入れたMySQL使ってますんで、
adminアカウントでやってます。
mysqlのコマンドライン上にてgrantするとちゃんとユーザが追加されるんですが、
phpのsystem関数でコマンド投げても受け付けて貰えません。

・・そもそもやり方が間違ってるような気もするのですが、
phpの関数にユーザ追加ってのが無いですし、どうしたものかと思いまして。

何か他のやり方があるのでしょうか?
0882nobodyさん05/02/26 02:00:38ID:???
ただ「受け付けて貰えない」だけじゃなく、必ずエラーを吐いてるはずだから
なんとかしてそのエラーを見つけてきたまい
0883nobodyさん05/02/26 03:38:26ID:???
>>881
PHPからやるならMySQL関数でadminアカウントを指定し
GRANTのクエリを発行すれば良いです。

system関数で駄目なのは根本的にコマンドが通ってないと思われるので
もっと簡単なコマンドを発行してみて結果がどのように返ってるか
を確認しながら作業すべし。
0884nobodyさん05/02/26 08:26:26ID:???
>>882
>>883
了解です。
アドバイスを参考に、もう一度最初から見直してみます。

ありがとうございました。
0885nobodyさん05/02/28 12:49:34ID:???
PostgreSQLからMySQLに乗り換える際に、データを効率よく引き継ぐ方法はありますか?
パーミッションなどは引き継げなくても、テーブルの中身だけでもOKです。
0886nobodyさん05/02/28 13:36:59ID:???
>>885
MySQL→PostgreSQLでもそうだけど、dumpして流し込み。
ただ、どちらにせよ型のマッチや予約語あたりはちょこっと気にせんとね。
088788505/02/28 14:31:31ID:???
テーブルを作るところはちょっとした修正でうまくいくのですが、
PostgreSQLのdumpは、COPYというコマンドで値をセットしているのに対し、
MySQLのdumpは、INSERTコマンドを繰り返してセットしており、
COPYコマンドは受け付けてくれないみたいなのです。
0888nobodyさん05/02/28 14:34:29ID:???
>>886
ほんとにすいません。pg_dumpのオプションに、こんなのがありました。
-d, --inserts dump data as INSERT, rather than COPY, commands
-D, --column-inserts dump data as INSERT commands with column names
あとは手動でどうにかします。
0889nobodyさん05/02/28 20:05:19ID:???

php.ini において、magic_quotes_gcp = on にしていれば、
SQLインジェクションに対して安全でしょうか?

やはり
mysql_real_escape_string() とか mysql_escape_string() とか addslashes を
使うべきでしょうか?
0890nobodyさん05/03/02 18:12:04ID:???
Fedora Core 3標準のMySQL 3.23.58を使っています。主な用途はxoopsです。
FC3での日本語がutf-8なので、MySQLにutf-8で日本語を詰め込んでしまいました。
このMySQL上のデータベースを、MyODBC経由でMS-Windowsから操作したいのですが、
utf-8を正しく扱えるMyODBCドライバ、もしくは関連する情報をお持ちでしたら教えて頂けませんか?

089189005/03/03 16:39:07ID:???
>>890
もちろん、utf-8を完璧に扱えなくても、主要な日本語が通ればOKです。
0892nobodyさん05/03/05 02:18:48ID:80ZPRUuI
ある月の範囲内のdateカラムを探す時、どうやるのがベストでしょうか?
私は
where date like '2005-03%'
としていますが、これは妥当なのでしょうか?
0893nobodyさん05/03/05 11:51:20ID:???
3.3.4.5 日付の計算
0894nobodyさん05/03/06 07:58:57ID:???
最近勉強し始めたばかりの者なんですけども、
エディタって何使ってますか?

もちろんコマンドから操作すれば不要なのは分かるんですが、
phpmyadminみたいに、sqlコマンドが色分けされる(デフォになくても
SQL用の強調表示ファイルが存在する)エディタがあれば良いなぁと。
089589005/03/10 18:17:59ID:???
>>890
mysql4にすれば、SET CHARACTER SETでコードを設定できますね。
mysql4にあげてみることにします。

ありがとうございました。
0896nobodyさん05/03/12 16:14:26ID:nH5XpFGK
4.0を使っています。
記録されていたデータを全部deleteしたにもかかわらず、
新しくデータを記録するとauto_inclementのint型フィールドの値が、
消す前の続きから始まってしまいます。
これは仕様ですか?
0897nobodyさん05/03/12 16:23:53ID:nH5XpFGK
追記ですが、もし仕様だとしたら巻き戻す方法はないでしょうか。
適当にデータを入れ、Updateして無理やり1にしてみましたが、
更にまた新しくデータを追加してみると、2ではなく
消す前の値の続きからになってしまいます。
0898nobodyさん05/03/12 16:50:21ID:???
特定のシーケンス番号が必要ならそもそもauto_incrementを使うのは
間違ってる。

last_insert_id()はコネクションごとにIDを保持するから、一度コネクションを
切ってから再接続してやってみたら1から始まるかもしれない。
0899nobodyさん05/03/12 17:33:01ID:???
>>896
一旦、カラムを削除して、そのカラムを作成しなおせば、1から始まるはず。
0900nobodyさん05/03/12 19:27:21ID:???
長いクエリについて

PHP+MySQLで組んでます。
項目が多いのでクエリが長いんですよね・・・
で、ダラダラと横一列に書くのではなく、各カラム毎に改行して見やすくしたいのですが、
どうすれば良いのでしょうか?

__ ←を使うと良かったと思うのですが・・・

宜しくです。m(_ _)m
0901nobodyさん05/03/13 08:03:18ID:???
>>898>>899
結局作り直してしまいましたが、今後の参考にします。
ありがとう。
0902nobodyさん05/03/15 02:06:06ID:???
>>901
ああ、手遅れか。
ALTER TABLE table_name AUTO_INCREMENT=0;

>>898
とてつもなく勘違いしてるな。
0903nobodyさん05/03/15 16:08:27ID:veLUi2yw
同じテーブルに二つ以上primary keyを持ったフィールドを指定する事が出来ない。
でも検索をする時に各値が一意なものであることが分かっていれば、
一つ目の該当レコードを見つけた時点で検索を打ち切る事が出来て効率化するはず。
だから二つ以上のフィールドに一意である事を示したいのだけど、やり方がわからない。
もしかしたらフィールド作成時に明示しなくてもMySQLが勝手に判断してくれるのかも?
教えてください。
0904nobodyさん05/03/15 16:26:07ID:???
unique index を学べ
0905nobodyさん05/03/15 20:58:58ID:???
>>900
$sql = "SELECT * FROM Table "
   ."WHERE Field1=100 "
   ."AND Field2=200;";
0906nobodyさん05/03/15 21:54:03ID:???
>>900
えぇえぇっ!

俺普通に、

$sql = "SELECT * FROM Table
     WHERE Field1=100
     AND Field2=200";

って適度に改行して書いてるんだけど…

0907nobodyさん05/03/15 22:05:17ID:???
だから何
レス数が900を超えています。1000を超えると表示できなくなるよ。