php+mysqlについて質問です。

初歩の質問ですみません。
php+mysqlでショッピングカートを作ろうと勉強を始めました。
サーバーがkagoyaの専用サーバーを使っています。

参考書に沿ってつくったphpが接続できません。

<html>
<body>
<?php
if($db=sqlite_open("db_ehon")){
$query="CREATE TABLE tbl_ehon(id INTEGER,title VARCHAR(10),price INTEGER)";
$result=sqlite_query($db,$query);
print "OKです";
}else{
die("接続できず");
}
sqlite_close($db);
?>
</body>
</html>

実行結果

Warning: sqlite_open() [function.sqlite-open]: unable to open database: /・・・/php/sql_create.php on line 4
接続できず



というエラーがでました。
mysglの設定のせいなのでしょうか?phpプログラムの記述間違いなのでしょうか?

回答の条件
  • URL必須
  • 1人10回まで
  • 登録:2009/04/25 14:41:56
  • 終了:2009/05/02 14:45:02

ベストアンサー

id:hijk05 No.3

hijk05回答回数1307ベストアンサー獲得回数232009/04/26 01:29:29

ポイント10pt

sqlite_openの引数が間違ってると思います。

フルパスで指定しないと駄目です。

http://php.hushlog.com/2008/06/sqlite_open.php

>MySQL とSQLiteはどちらがおすすめでしょうか?

同時アクセス&更新があるの様なものは、MySQLを使うのが普通です。

SQLiteは、そういうのもなく、比較的軽い処理をするのに使うのが普通です。

その他の回答(2件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/04/25 14:49:00

ポイント42pt

sqlite_open など SQLite 関数群は、データベース「SQLite」を操作するための関数群です。

MySQLを操作するのであれば、MySQL関数群を使う必要があります。


ところで、kagoya の MySQLサービスは有料オプションになっていますが、手続きは済んでいますよね。

id:kasai-de_eb

オプションの申し込みはしました。

MySQLサービスはある程度制限があるみたいですが・・・

phpの参考書内の

SQLiteの使い方の勉強の部分だと思うんですがSQLiteを使える環境が整っていないということでしょうか?

いつも丁寧に有難うございます。

2009/04/25 15:19:42
id:kn1967 No.2

kn1967回答回数2915ベストアンサー獲得回数3012009/04/25 15:05:46

ポイント28pt

本に書いてる情報が判りませんが

データベースを置くディレクトリのパーミッションとして666が指定されているとすれば

KAGOYAでは 644 に指定してください。


失礼ながら・・・、ショッピングカートの自作は面倒なだけでなく

下手をすればお客様に迷惑をかけたり、お店に損害を出したりする可能性もありますので

無料オプションで用意されているもの(下記の3種類)を使うほうがよろしいかと思います。

http://www.kagoya.net/option/e_shoppers.html

http://www.kagoya.net/option/eccube2.html

http://www.kagoya.net/option/easycgi_oscomm.html

id:kasai-de_eb

パーミッションですね・・・確認してみます。

有難うございました。

無料オプションではずっと進歩しないので・・・

2009/04/25 15:23:39
id:hijk05 No.3

hijk05回答回数1307ベストアンサー獲得回数232009/04/26 01:29:29ここでベストアンサー

ポイント10pt

sqlite_openの引数が間違ってると思います。

フルパスで指定しないと駄目です。

http://php.hushlog.com/2008/06/sqlite_open.php

>MySQL とSQLiteはどちらがおすすめでしょうか?

同時アクセス&更新があるの様なものは、MySQLを使うのが普通です。

SQLiteは、そういうのもなく、比較的軽い処理をするのに使うのが普通です。

  • id:pahoo
    おや?
    MySQL と SQLite は違うものです。
    MySQL ではなく、SQLite の利用方法を質問したいということでしょうか?
  • id:kn1967
    >無料オプションではずっと進歩しない

    Web開発系への就職や、開発者としての自己学習としてであれば止めはしませんが
    専用サーバを用意しておられるということで、店舗を運営しておられるのだと推測し
    「販売数や売上高を上げるには、どのように運用すれば良いのか?」という点に
    重点を置くほうが良くありませんかという話です。

    店舗運営ではなくシステムを学びたいという意思だとさせていただくとして
    MySQLとSQLiteは共にデータベース管理システムですが生まれも育ちも違い
    適用にあたっては向き/不向きもあり、使い方にもそれぞれ独特の癖がありますので
    「よりシンプルなものを使って、まずはデータベースの基本から」というお考えかもしれませんが
    MySQLによる開発をお考えであるならば最初からMySQLで学ばれるのがよろしいでしょう。
    データベース開発ではなくWeb開発においてはOS環境やネットワーク環境などについても
    多少なりとも学ばなければなりませんから、焦点を絞っておかないと範囲が広くなりすぎて
    手におえなくなりますよ。
  • id:kasai-de_eb
    pahoo様

    すみません。
    そうです・・・MySQL を使用するのであればSQLiteは勉強する必要がないのでしょうか?

  • id:kasai-de_eb
    追加です。
    MySQL とSQLiteはどちらがおすすめでしょうか?
  • id:kn1967
    MySQLはデータベースエンジンを適宜選択でき、小規模なシステムから
    何十何百のサーバを連携させるような大規模システムまで構築可能で
    WEBで用いられているデータベースとしては主流。
    相談相手も非常に多く、参考事例なども探しやすい。
    機能が豊富なためマスターするには年単位の覚悟が必要なのですが
    参考事例などを真似るだけである程度は使えてしまったりするので
    本当の意味でマスターしている人は限りなく少ないかもしれません。

    SQLite は極小規模に特化したものと考えても差し支えないと思いますが
    小規模ショップならば必要十分。
    php5からは標準添付(コンパイル時に外してあれば使えないけど)なので
    使える環境は意外と多いので選択肢としてはありという程度。

    目的がショップなので、今のところはMySQLかな・・・
    (MySQLにはライセンス問題があったりするのだけど
    ORACLE傘下になって今後どうなるのだろう・・・)
    http://www-jp.mysql.com/about/legal/licensing/faq.html
  • id:pahoo
    MySQLを学ぶことをお勧めします。

    前回の質問(http://q.hatena.ne.jp/1240040943)で、私は、最初に「MySQL理解」を挙げました。
    SQLiteは、個人向けのデータベースです。MySQLを含む一般的なRDBMSに比べると、権限管理がなかったり、タイプレスであるなど、公開システムを構築するには役不足です。
    目的のショッピングカートを「使うユーザーは自分だけ」ということでしたが、それであっても、権限管理や暗号化は学んでおいた方がいいでしょう。

    SQLiteを学ぶことで一般的なSQLの知識は身につきますから無駄にはなりませんが、すでにMySQLオプションを申し込まれているということなので、最初からMySQLを学んではいかがでしょう。

    話が質問の主旨から離れてしまいました――。

    質問のエラーは、kn1967 さんが回答していますが、パーミッションの設定ミスではないかと思います。(前回の質問で、OSに関する知識も必要であることをお話ししていましたね。)
    このように、SQLiteはOSのパーミッションで権限管理を行っており、データベースとしての権限管理がないのです。データ自体もファイル化されてしまうので、外部からの攻撃に対して弱い状態にあります。
  • id:kasai-de_eb
    kn1967様

    ご丁寧に説明いただき有難うございます。
    MySQLで進めていこうと思います。
    今のことこさっぱりわかりません。・・・が
    完璧じゃなくても1年いないにはphpとmysqlを
    マスターしようと思います

    有難うございました。


  • id:b-wind
    >SQLiteは、個人向けのデータベースです。

    誤解を招くといけないので補足。
    SQLite は商用レベルでも使えるれっきとした RDBMS です。
    ただし、癖が強く一般に多く使われている物と比べると用途の向き不向きの差が激しい物です。
    なので初学としては MySQL でよいかと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません