PHP

[CakePHP 2.x]テーブルのカラム名を取得

テーブルのカラム名を取得

$this->Model->getColumnTypes();

Controller

$columnTypes=$this->SystemTest->getColumnTypes();
$columnNames=array_keys($columnTypes);
$this->set('columnTypes', $columnTypes);
$this->set('columnNames', $columnNames);

View

columnTypes<br/>
<?php
$tmp=var_export($columnTypes,true);
echo str_replace("\n", "<br/>", $tmp);
?>
<br/><br/>
columnNames<br/>
<?php
$tmp=var_export($columnNames,true);
echo str_replace("\n", "<br/>", $tmp);
?>

Sample

[PHP x MySQL]MySQLを使う

MySQLを使う

$default = array(
	'host' => 'database host',
	'user' => 'user ID',
	'password' => 'password',
	'database' => 'database name',
	'encoding' => 'utf8',
);
$link = mysql_connect($default['host'], $default['user'], $default['password']);

if (!$link) {
    echo '接続失敗です。'.mysql_error();
    die();
}
echo "接続成功<br/><br/>";

$db_selected = mysql_select_db($default['database'], $link);
if (!$db_selected){
    echo 'データベース選択失敗です。'.mysql_error();
    die();
}
echo "データベース選択成功<br/><br/>";

mysql_set_charset($default['encoding']);
$result = mysql_query('SELECT * FROM test00');
if (!$result) {
    echo 'クエリーが失敗しました。'.mysql_error();
    die();
}

$tmp=array();
while ($row = mysql_fetch_assoc($result)) {
    $tmp[]=$row;
}
var_dump($tmp);

$close_flag = mysql_close($link);
echo '切断に'.( ($close_flag)?'成功':'失敗' ).'しました。';

[PHP]ディレクトリを沢山作る

mkDir('/home/users/2/web/blog/log/2012/10/09',0777,true);

もしくは

$targetDir=’/home/users/2/web/blog/log/2012/10/09′;
$baseDir=’log’;
とすると
/home/users/2/web/blog/log/2012
/home/users/2/web/blog/log/2012/10
/home/users/2/web/blog/log/2012/10/09
をmkdirする

function mkDirs($targetDir,$baseDir){
    $tmp=explode('/', $targetDir);
    $tmpDir='';
    $mkflg=false;
    $failedDir='';
    foreach ($tmp as $key => $v) {
    	$tmpDir.=$v.'/';
    	if(!$mkflg && $v===$baseDir){
    		$mkflg=true;
    		continue;
    	}
    	if( $mkflg && !file_exists($tmpDir) ){
    		if( !mkdir($tmpDir,0777) ){
		      $failedDir=$tmpDir;
    		      break;
    		}
    	}
    }
    return $failedDir;
}

[PHP x SQLite3]PHPでSQLite3 #5データ更新(UPDATE)

PHPでSQLite3 #5データ更新(UPDATE)

$sql="SELECT id,cnt FROM $tableName WHERE id='{$id}'";
$result=$db->query($sql);
$row = $result->fetchArray();
$id=$row['id'];
$cnt=$row['cnt']+1;

$sql="UPDATE $tableName SET cnt = $cnt WHERE id = $id";
$result=$db->query($sql);

[PHP x SQLite3]PHPでSQLite3 #3データ取得(SELECT)

PHPでSQLite3 #3データ取得(SELECT)

$tableName="access";
$sql="SELECT id,name,cnt FROM $tableName WHERE name='{$name}' ORDER BY cnt ASC";
$result=$db->query($sql);
$tmp=[];
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
	$tmp[]=$row;
}
echo json_encode($tmp);
$db->close();

データ重複しないように取得

$sql="SELECT DISTINCT name FROM $tableName";
$result=$db->query($sql);
if($result===FALSE){
	$db->close();
	echo $message;
	exit;
}
$tmp=[];
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
	$value=$row['name'];
	$tmp[]=$value;
}
echo json_encode($tmp);

[PHP x SQLite3]PHPでSQLite3 #2テーブル作成

PHPでSQLite3 #2テーブル作成

$tableName="access";
$sql="create table if not exists $tableName (id INTEGER PRIMARY KEY AUTOINCREMENT, name varchar(6), title text, cnt int)";
$result=$db->query($sql);
if ($result===FALSE) {
	$db->close();
	echo $message;
	exit;
}
$db->close();

[PHP]substr

substr

$str='abcd';
echo substr($str,1,2);

結果

bc

$str='abcd';
echo substr($str,0,-1);

結果

abc

$str='abcd';
echo substr($str,-1);

結果

d