SQLの基本コマンド操作

Linux内のサーバーに入るコマンド

mysql -u root

以下でmysqlのヴァージョンを知れる。
mysqladmin -u user -p version

データの追加・挿入

mysql_query(“INSERT INTO “テーブルの名前” VALUES(‘カラムの順番に追加する値1’,’カラムの順番に追加する値2’)”);
※mysql_query(“INSERT INTO “test_table” VALUES(‘1′,’テスト’)”);

データの修正・変更

mysql_query(“UPDATE “テーブルの名前” SET “カラム名” = “修正する値” WHERE “一意なカラム” = “特定する値”;”);
※mysql_query(“UPDATE “test_table” SET “price” = “1000” WHERE “id” = “1”;”);

データの削除

DELETE FROM “テーブルの名前” where “カラム名” = “一意な値”];
※DELETE FROM test_table WHERE id = ‘1’;

特定の条件を満たすレコードを取り出す

WHERE 条件式
※mysql_query(“UPDATE “test_table” SET “price” = “1000” WHERE “id” = “1”;”)
id が1のみのレコードを取り出して更新する。

データの結合/h3>
SELECT * FROM テーブル名 JOIN テーブル名

PHP,HTMLでformを使う方法

Select

<select name=”example”>
<option value=”サンプル1″ selected>サンプル1</option>
<option value=”サンプル2″>サンプル2</option>
<option value=”サンプル3″>サンプル3</option>
</select>

selectedが付いてるのが選択されている状態

PHPでtwitterAPIから指定したツイートの情報を取得する方法

PHPでtwitterAPIから指定したツイートの情報を取得する方法です。
任意のツイートを1つ取得するエンドポイントです。

今回使うのは以下のREST

GET statuses/show/:id

Twitter Developer Documentation

パラメータ

idのみ必須。
複数指定するには、,で区切る。

ソースコード

//twitteroauth.phpをインクルードします。ファイルへのパスはご自分で決めて下さい。
require “twitteroauth/autoload.php”;
use Abraham\TwitterOAuth\TwitterOAuth;

//Consumer keyの値を格納
$sConsumerKey = “XXXXXXXXXXXXXXXXXXXXXXXXXX”;
//Consumer secretの値を格納
$sConsumerSecret = “XXXXXXXXXXXXXXXXXXXXXXXXXX”;
//Access Tokenの値を格納
$sAccessToken = “XXXXXXXXXXXXXXXXXXXXXXXXXX”;
//Access Token Secretの値を格納
$sAccessTokenSecret = “XXXXXXXXXXXXXXXXXXXXXXXXXX”;

$to = new TwitterOAuth($sConsumerKey,$sConsumerSecret,$sAccessToken,$sAccessTokenSecret);

$Req = $to->get(‘statuses/show’, array(“id” => “XXXXXXXXXXX”));

上を実行すると、指定したIDのツイート情報がjson形式でが返ってきます。

PHPでtwitterAPIから動画を投稿する方法

PHPでTwitter APIから動画投稿を行う方法を紹介します。

簡単な流れ

Twitterのサーバーに、media/upload(INIT、APPEND、FINALIZE、STATUS)の
4段階のリクエストを経て、statuses/updateで動画をアップロードします。

30秒以上の動画を投稿する場合はAPPEND時に
分割してデータを送信しSTATUSも実施する必要があります。

※30秒以下の動画を投稿する場合は上記はしなくてもよい

設定

①Twitterアカウントは古いアカウントではだめ 最新のアカウントを利用。
古いアカウントでは動画投稿ができないっぽい。

アカウントを作成したら以下からアプリの登録を行い、
>> Twitter Application Management

Consumer key,Consumer secret,Access Token,sAccessTokenを取得する。

②最新のTwitterOAuthを利用する。
動画投稿に対応しているOAuthを利用すること
>> TwitterOAuth

③PHP5.4以上を利用。
確認方法はソースの適当なところに
phpinfo();を記述する。

php5.4未満だと以下のエラーが発生する。
TwitterOAuth.php on line 129

ソースコード

//twitteroauth.phpをインクルードします。ファイルへのパスはご自分で決めて下さい。
require “twitteroauth/autoload.php”;
use Abraham\TwitterOAuth\TwitterOAuth;

//Consumer keyの値を格納
$sConsumerKey = “XXXXXXXXXXXXXXXXXXXXXXXXXX”;
//Consumer secretの値を格納
$sConsumerSecret = “XXXXXXXXXXXXXXXXXXXXXXXXXX”;
//Access Tokenの値を格納
$sAccessToken = “XXXXXXXXXXXXXXXXXXXXXXXXXX”;
//Access Token Secretの値を格納
$sAccessTokenSecret = “XXXXXXXXXXXXXXXXXXXXXXXXXX”;

$to = new TwitterOAuth($sConsumerKey,$sConsumerSecret,$sAccessToken,$sAccessTokenSecret);

$filename = “img/test.mp4”;
$fileText = “これはツイートです。”;

$url = “https://upload.twitter.com/1.1/statuses/update.json”;
$uri = “https://upload.twitter.com/1.1/media/upload.json”;
$method = “POST”;

$segment_index = 0;
$chank = 5 * 1024 * 1024;

//動画のデータファイルをバイナリに変換する。
$file_date = file_get_contents($filename);
$file_date = base64_encode($file_date);
$file_size = mb_strlen($file_date);

//これからアップロードするファイルの情報を作る。
$info = $to->OAuthRequest($uri,$method,array(‘command’ => ‘INIT’,’media_type’ => ‘video/mp4′,’total_bytes’ => filesize($filename), ‘media_category’ => ‘tweet_video’));
$Obj = json_decode($info);

//メディアのIDを取得
$sba = $Obj->media_id_string;

//何回アップロードが必要か
$maxRound = ceil($file_size / $chank);

//APPENDをファイルサイズ分割分だけアップロード
for($i=0;$i<$maxRound;$i++){ $file_size_x[$i] = substr($file_date,$chank*$i,$chank); $to->OAuthRequest($uri,$method,array(‘command’ => ‘APPEND’,’media_id’ => $sba,’segment_index’ => $i,’media’ => $file_size_x[$i],));
}
$info = $to->OAuthRequest($uri,$method,array(‘command’ => ‘FINALIZE’,’media_id’ => $sba));
$Obj = json_decode($info);

//アップロードしたデータ情報をファイルサイズ分割分だけ最新化
for($i=0 ;$i<$maxRound ;$i++){ sleep($Obj->processing_info->check_after_secs);
$res = $to->get(‘media/upload’, array(“command” => “STATUS”,”media_id” => $sba));
}

//動画とテキストを投稿
$res = $to->post(“statuses/update”, array(“status” => $fileText,’media_ids’ => $sba));

以上で投稿が行える。
サーバーの処理状況によって以下のエラーが発生することも…

Fatal error: Uncaught exception ‘Abraham\TwitterOAuth\TwitterOAuthException’ with message ‘Operation timed out after 5000 milliseconds with 0 bytes received’

その場合は以下を設定し、タイムアウトの時間を変更するといいよ。
$to->setTimeouts(10, 15);

その他にはまったエラーたち

①TwitterOAuth.php on line 366 エラー

以下のコードをコメントアウトにする。

//↓TwitterOAuth.phpエラー該当箇所
/* Remove CACert file when in a PHAR file. */
if (!empty(\Phar::running(false))) {
unset($options[CURLOPT_CAINFO]);
}

②Call to private method Abraham\TwitterOAuth\TwitterOAuth::OAuthRequest() from context エラー

private method を呼べないエラーみたいです.
TwitterOAuth.php の private function oAuthRequest(url,url,method, $parameters) の private を消します.

③”The Twitter REST API v1 is no longer active. Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview.”,”code”:64}

TwitterAPIの呼び出し方が古いのでちゃんとv1.1の呼び出し方をする事。
最新のTwitterOAuthを利用すること。

④Duration too long, maximum:30000, actual:60000
You have to pass the new media_category param in order to use longer videos (> 30 seconds).

30秒以上の動画は分割して投稿する必要があるが、その処理が上手くできていない時に発生。

⑤Segments do not add up to provided total file size.
分割して送った動画のトータルサイズが最初に送ると言ったサイズと一致していないので分割送信が上手くいっていない時に発生。