mysql ヘルプ!
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名無しさん@お腹いっぱい。
02/01/22 16:08ID:kMbsTQE3状況を詳しく書きます
PHPが動くプロバイダーのディレクトリにおいた自分の家の
mysqlサーバを操作するPHPに
$db = mysql_connect("mysqlサーバのip:3306","ゆーざ","ぱす");
と書いたのですが、駄目でした。
どうすればいいのでしょうか?
0830nobodyさん
05/01/15 00:33:23ID:NZnuK1eg直接PHPファイルに書くのに抵抗があります。
聞く話によるとMD5ハッシュ化したパスワードで接続することが出来るらしいのですが、
検索してもやり方がわかりませんでした。
どのようにすればMD5ハッシュ化したパスワードで接続できるのでしょうか。
0831nobodyさん
05/01/15 08:45:26ID:???ハッシュ化したパスワードで接続できるほうが危ないと思うんだけど。
ハッシュはサーバのどこかに保存されてるので見られる可能性がある
生パスはサーバには無いので絶対に見られない
0832nobodyさん
05/01/15 10:54:23ID:NZnuK1eg共用鯖でmod_php利用なのでアクセス権を604としなければならなく、
同じ鯖の人から見ようと思えばphpの内容が観覧できてしまいます。
なので、生パスワードをphpに記載するほうが怖いんですが・・・
0833nobodyさん
05/01/15 11:46:39ID:???生だろうがハッシュだろうが、スクリプトに記述してしまうならいっしょ。
mod_phpならsafe-modeの制限に頼るしかない。
0835nobodyさん
05/01/15 12:39:43ID:???照合する側がハッシュで照合してるならともかく
(MySQLサーバ側は確かにそうしてるが)
PHPのスクリプトでMySQLにアクセスする部分のパスワードを
どこぞに列挙するなら、それが生だろうがハッシュ化されてようが
普通にパスワードとして使えるのだから一緒でしょ。
列挙するパスワードをどこか他の認証と共用してるシステムなら
共用してる部分については「生パス抜けない」ということになるけど。
0836nobodyさん
05/01/15 21:33:17ID:???0837nobodyさん
05/01/16 01:46:09ID:???そうだね。
でも複合できるかどうかは関係ない、てことが分かってないようで・・
そんなに気になるなら CGI で 600 で動かせばいいじゃん。
0838nobodyさん
05/01/18 03:47:13ID:KC0Yllm6mysqlのBLOBにバイナリデータを入れる時は、
普通にmysql_escape_string()しておくだけで問題ないのでしょうか?
なんとなくおかしなクエリになってしまうケースがありそうで恐いのですが…
0839nobodyさん
05/01/18 11:58:44ID:4Eo/wmNT自動的に(人間がmysqlを立ち上げないで)データベースとその中のテーブルを作る手っ取り早い方法はどんなものでしょうか?
もちろんデータベース名、テーブル名とそのフィールドは固定です。
0841nobodyさん
05/01/19 21:46:19ID:JHcmHOhC単純に思いつくのは
・SELECTで値が入っているかどうかを調べる
入っていない場合 -> INSERT
入っている場合 -> UPDATE
のように2回クエリを送らなくてはならないため、もう少し良い方法があればと思いまして
ご存知の方がいらっしゃいましたらどうかよろしくお願い致します。
0842nobodyさん
05/01/19 21:56:32ID:???但し
内部的には
DELETE→INSERT
だからunique制約とかprimaryの制約がないとだめだけど。
0843842
05/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の出力を見るようにするにはどこを変更すればよいのでしょうか
0848ぐぐっても見つけられんかった
05/01/28 21:12:40ID:ox6Cyfvr考えられる原因は何でしょうか。。。
0850nobodyさん
05/01/28 22:12:48ID:???Error#1046,ER_NO_DB_ERROR,No Database Selected,データベースが選択されていません.
0851nobodyさん
05/01/29 12:52:05ID:???−−−環境−−−
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');
でできないっす
0853EK
05/01/31 00:04:33ID:pCNLnhtEmySQLで
| 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]|
.....
に変更するにはどのようにすればいいのでしょう?
0855EK
05/01/31 08:49:37ID:abXFv+ha0857nobodyさん
05/02/01 06:06:35ID:Ous9jt79コマンドプロンプトから2バイト文字のデータを入れると文字化けします。
jspを使ってブラウザからsjisで入れたり出したりする分には
いまのところ正しくできてるっぽいのですが、
そのデータをコマンドプロンプトでみるとやはり文字化けしてます。
4.0を使ってるときはコマンドプロンプトで出し入れするのも
データを見るのも文字化けせず大丈夫だったんですが、
何がいけないのでしょうか?直す方法はありますでしょうか。
0858857
05/02/01 06:50:26ID:Ous9jt790860nobodyさん
05/02/01 08:56:41ID:???+--+--------+-----+
| id | name | price |
+--+--------+-----+
| 01 | hoge | 100 |
| 02 | fuga | 200 |
| 03| puni | 200 |
| 04 | hage | 100 |
……
ここで、価格:100(2件)〜200(2件)というように
最低価格、最高価格とその件数を導きたいのですが、
どのようなクエリをかけばよろしいでしょうか。
今はMAX()とMIN()で最大・最小値は求められるのですが
その件数が上手く求められないのです。
よろしくお願いいたします。
0862nobodyさん
05/02/01 15:17:47ID:???これを計算してみると 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進法計算で込み入っていて申し訳ないのですが、どなたかご存知でしたら教えて下さい。
0863857
05/02/01 17:25:28ID:Ous9jt79my.iniをsjis設定にしてもかわらず。
コマンドプロンプト立ち上げるたびに「set names sjis;」するしか
ないのでしょうか。
0864nobodyさん
05/02/01 19:40:16ID:???いや、それは面倒くさいやろ。
クライアントライブラリのエンコードを自分の欲しいものに
きちんと指定して再度コンパイルでOK。
0865nobodyさん
05/02/02 04:43:23ID:???そうですか。それはちょっと敷居が高い…
とりあえずブラウザから使う分には問題なさそうだから余裕ができたらチャレンジします。
ありがとうございました。
0866nobodyさん
05/02/02 05:05:35ID:TSxm2UhNchar(16)のカラムを作ろうとしてもvarchar(16)になりますが
何故でしょうか?
0868nobodyさん
05/02/04 00:22:56ID:FzOGXEjcphpmyadminをいれて、接続したら真っ白な表示がされるだけです。
どのあたりを見ればいいのでしょうか?
0870nobodyさん
05/02/04 00:35:52ID:FzOGXEjc0872質問です
05/02/11 01:47:17ID:bxpVru70もちろん、select文で表示はできるのですが、
show tables;
では見れないですよね?
そもそもメモリ上にあるテンポラリテーブルは見れない仕様なのでしょうか?
0873nobodyさん
05/02/18 01:17:47ID:oRUItyUuあるカラムをインクリメントして、その値を取得することは可能でしょうか?
0874sage
05/02/24 23:50:55ID:MSi8NK1Eロックの権限の確認方法はどうすればできますか?
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:???CGIでコマンド発行してみても受け付けて貰えなかったです。
PHPのMySQL関数には、ユーザー作成に関する物がないみたいですし。
宜しくお願いします
0877nobodyさん
05/02/25 23:12:53ID:???普通にmysqladminで発行できるが...マニュアル100回読んできな。
mysqlにユーザ作成コマンドをぶち込んでも同様にできると思うけど、
明確にadmin操作と一般操作は分けといた方が管理上は良い。
0878nobodyさん
05/02/25 23:26:47ID:???mysqladmin ユーザ追加のコマンドがありましたっけ?
マニュアル見てもその辺り載ってないんですが。
CGIやPHPでGrantコマンドを投げても実行されないんで困ってます。
0879nobodyさん
05/02/25 23:57:23ID:???サーバー管理者に聞くか、マニュアルを100回読むのがいいと思う。
接続に使用してるmysqlアカウントにgrant権限がないとかそういうことでしょ。
あと、マルチはどこへいっても嫌われるぞ。
0880nobodyさん
05/02/26 00:21:18ID:???ごめん、adduserコマンドは俺拡張(中身はGRANT)...
回線切っ首。
スクリプトからGRANT発行して駄目なのは、
adminのアカウントを使ってないためか、
GRANT権限に制限のあるmysqlユーザだとか、その辺では?
コマンドライン上で同じものを指定して試行してみれ。
0881nobodyさん
05/02/26 00:45:55ID:???ありがとうございます。
練習用として自宅サーバに入れたMySQL使ってますんで、
adminアカウントでやってます。
mysqlのコマンドライン上にてgrantするとちゃんとユーザが追加されるんですが、
phpのsystem関数でコマンド投げても受け付けて貰えません。
・・そもそもやり方が間違ってるような気もするのですが、
phpの関数にユーザ追加ってのが無いですし、どうしたものかと思いまして。
何か他のやり方があるのでしょうか?
0882nobodyさん
05/02/26 02:00:38ID:???なんとかしてそのエラーを見つけてきたまい
0883nobodyさん
05/02/26 03:38:26ID:???PHPからやるならMySQL関数でadminアカウントを指定し
GRANTのクエリを発行すれば良いです。
system関数で駄目なのは根本的にコマンドが通ってないと思われるので
もっと簡単なコマンドを発行してみて結果がどのように返ってるか
を確認しながら作業すべし。
0885nobodyさん
05/02/28 12:49:34ID:???パーミッションなどは引き継げなくても、テーブルの中身だけでもOKです。
0886nobodyさん
05/02/28 13:36:59ID:???MySQL→PostgreSQLでもそうだけど、dumpして流し込み。
ただ、どちらにせよ型のマッチや予約語あたりはちょこっと気にせんとね。
0887885
05/02/28 14:31:31ID:???PostgreSQLのdumpは、COPYというコマンドで値をセットしているのに対し、
MySQLのdumpは、INSERTコマンドを繰り返してセットしており、
COPYコマンドは受け付けてくれないみたいなのです。
0888nobodyさん
05/02/28 14:34:29ID:???ほんとにすいません。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:???FC3での日本語がutf-8なので、MySQLにutf-8で日本語を詰め込んでしまいました。
このMySQL上のデータベースを、MyODBC経由でMS-Windowsから操作したいのですが、
utf-8を正しく扱えるMyODBCドライバ、もしくは関連する情報をお持ちでしたら教えて頂けませんか?
0892nobodyさん
05/03/05 02:18:48ID:80ZPRUuI私は
where date like '2005-03%'
としていますが、これは妥当なのでしょうか?
0893nobodyさん
05/03/05 11:51:20ID:???0894nobodyさん
05/03/06 07:58:57ID:???エディタって何使ってますか?
もちろんコマンドから操作すれば不要なのは分かるんですが、
phpmyadminみたいに、sqlコマンドが色分けされる(デフォになくても
SQL用の強調表示ファイルが存在する)エディタがあれば良いなぁと。
0895890
05/03/10 18:17:59ID:???mysql4にすれば、SET CHARACTER SETでコードを設定できますね。
mysql4にあげてみることにします。
ありがとうございました。
0896nobodyさん
05/03/12 16:14:26ID:nH5XpFGK記録されていたデータを全部deleteしたにもかかわらず、
新しくデータを記録するとauto_inclementのint型フィールドの値が、
消す前の続きから始まってしまいます。
これは仕様ですか?
0897nobodyさん
05/03/12 16:23:53ID:nH5XpFGK適当にデータを入れ、Updateして無理やり1にしてみましたが、
更にまた新しくデータを追加してみると、2ではなく
消す前の値の続きからになってしまいます。
0898nobodyさん
05/03/12 16:50:21ID:???間違ってる。
last_insert_id()はコネクションごとにIDを保持するから、一度コネクションを
切ってから再接続してやってみたら1から始まるかもしれない。
0900nobodyさん
05/03/12 19:27:21ID:???PHP+MySQLで組んでます。
項目が多いのでクエリが長いんですよね・・・
で、ダラダラと横一列に書くのではなく、各カラム毎に改行して見やすくしたいのですが、
どうすれば良いのでしょうか?
__ ←を使うと良かったと思うのですが・・・
宜しくです。m(_ _)m
0902nobodyさん
05/03/15 02:06:06ID:???ああ、手遅れか。
ALTER TABLE table_name AUTO_INCREMENT=0;
>>898
とてつもなく勘違いしてるな。
0903nobodyさん
05/03/15 16:08:27ID:veLUi2ywでも検索をする時に各値が一意なものであることが分かっていれば、
一つ目の該当レコードを見つけた時点で検索を打ち切る事が出来て効率化するはず。
だから二つ以上のフィールドに一意である事を示したいのだけど、やり方がわからない。
もしかしたらフィールド作成時に明示しなくてもMySQLが勝手に判断してくれるのかも?
教えてください。
0904nobodyさん
05/03/15 16:26:07ID:???0905nobodyさん
05/03/15 20:58:58ID:???$sql = "SELECT * FROM Table "
."WHERE Field1=100 "
."AND Field2=200;";
0906nobodyさん
05/03/15 21:54:03ID:???えぇえぇっ!
俺普通に、
$sql = "SELECT * FROM Table
WHERE Field1=100
AND Field2=200";
って適度に改行して書いてるんだけど…
0907nobodyさん
05/03/15 22:05:17ID:???0908nobodyさん
05/03/15 22:05:48ID:???0909nobodyさん
05/03/15 22:06:16ID:???0911nobodyさん
05/03/15 22:47:33ID:???それ、連続した無用なスペースと改行が$sqlに入るけど
mysql_query()に渡す前にちゃんと処理してんの?
それともほったらかし?
0912nobodyさん
05/03/16 00:17:04ID:???参考書などで、よく、
$sql = ""; ←これ
$sql .= " SELECT * FROM table"
・・・
と見かけるんだけど、
この1行目はどういう意味があるんでしょうか。。。
0915nobodyさん
05/03/16 01:13:02ID:???前後のソースを見ないと何ともいえんが、変数になんか入れておかないと
エラーになる場合があるから、保険みたいなもんだ。
0919nobodyさん
05/03/16 10:43:33ID:???それもあるけど、""で初期化の意味合いが強いと思う。
$sqlなんてクエリ文字列用の変数として使いまわす可能性が
高いし、中に何か入ってるか判らないところに結合するのは怖い。
0920nobodyさん
05/03/16 10:46:46ID:???最初から「=」として代入しないのは、無駄といえば無駄だけどね。
0921nobodyさん
05/03/16 12:32:40ID:???で十分
0922nobodyさん
05/03/18 17:04:41ID:???$sql.=" select";
$sql.=" 名前 as name";
$sql.=" 年齢 as age";
$sql.=" from 個人情報";
$sql.=" where";
$sql.=" 店舗ID=".$t_id;
$sql.=" 性別=".$sex;
$sql.= ...........
最初のselectだけドットをつけないのを見逃すかもしれない
単純なselect一発なら大丈夫だと思うけどね
だからSQL文は全て .= にしてその代わり
$sql="";
を頭に置く
ちなみに漏れもよくやる
コピー&ペーストで楽ができるからね
0924nobodyさん
05/03/18 17:18:07ID:???0925nobodyさん
05/03/18 17:58:45ID:???それだとスペースと改行が入っちまうじゃん。
とはいえ長さが問題になるほどのクエリーになるとも限らんし、
クエリのサニタイズの処理で考慮しえあるなら、別にいいけどな。
0927nobodyさん
05/03/18 18:43:03ID:???書き間違えが多い文章になったが、最後の2行を読んで理解してくれ。
$sqlをその後どう使うかは判らん場合「無問題」とは言えないだろ。
0928nobodyさん
05/03/18 20:14:49ID:???美しさを無視する奴はプログラマ失格。
「いいじゃん、動けば」
0929nobodyさん
05/03/18 21:09:30ID:???レス数が900を超えています。1000を超えると表示できなくなるよ。