参考:MySQL初心者入門講座
Amazonからデータを取得する際に、既に保持しているデータとそうでないものを区別し、まだ持っていないデータのみを格納するようにしたいので、プライマリーキーをオートインクリメントさせる。
参考:dbonline - AUTO_INCREMENTの設定
とりあえず、こんな感じのテーブルを作ってみた。
create table book(
pref_cd int(6) auto_increment,
title varchar(50),
author varchar(50),
isbn varchar(20),
imgurl_medium varchar(100),
imgurl_large varchar(100),
primary key(pref_cd)
);
mysqlの管理はphpmyadminでもできるようなので、以下のサイトを参考に新規ユーザの作成や権限の委譲を行った。
参考:adminweb - MySQLの設定と利用
phpからmysqlに接続するためにPDOを使用した。PDOはphpからmysqlへの接続を簡単にしてくれるAPIのような感じだと思われる。一応、コードをのせておく。
----------------------------------------------------------
// setting mysql parameter
$dsn = 'mysql:dbname=DBNAME;host=localhost;charset=utf8';
$user = 'USER';
$password = 'PASSWORD';
try{
$dbh = new PDO($dsn, $user, $password);
$sql = "insert into book ('title','author',...) values ('?','?',...)";
$stmt = $dbh->query($sql);
if (!$stmt) {
die('INSERT query missed'.mysql_error());
}
if ($dbh == null){
print('miss connection<br>');
}else{
print('success connection<br>');
}
}catch (PDOException $e){
print('Error:'.$e->getMessage());
die();
}
-----------------------------------------------------------------
参考:phpbook - PDOの利用
書籍情報の獲得は過去エントリを参考にして行った。
このコードを使うことで、phpとmysqlの接続はできたが、titleとauthorに日本語を格納する際に文字化けが生じてしまった。様々なサイトを参考に色々いじった結果、なんとか日本語で保存できるようになった。正直、どれが効いたのかわからないので、一応修正した箇所を記録しておく。
【my.conf】
[client]
[mysqld]
[mysqldump]
[mysql]
【php.ini】
最終的に、mysqldにskip-character-set-client-handshakeを追加することで日本語保存が可能になった。なお、phpファイルの記述形式もutf-8である。
書籍情報の獲得は過去エントリを参考にして行った。
このコードを使うことで、phpとmysqlの接続はできたが、titleとauthorに日本語を格納する際に文字化けが生じてしまった。様々なサイトを参考に色々いじった結果、なんとか日本語で保存できるようになった。正直、どれが効いたのかわからないので、一応修正した箇所を記録しておく。
【my.conf】
[client]
default-character-set = utf8
[mysqld]
character_set_server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
default-character-set = utf8
skip-character-set-client-handshake
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8
【php.ini】
default_charset= "utf-8";
最終的に、mysqldにskip-character-set-client-handshakeを追加することで日本語保存が可能になった。なお、phpファイルの記述形式もutf-8である。
0 件のコメント:
コメントを投稿