FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PHP MYSQL で PDO を使うときの auto_increment 直近の値取得

PDO を使うときの auto_increment 直近の値取得方法のメモメモ
mysql_insert_id()みたいなことをしたいときに

PDO::lastInsertId

がある。

クラス内で具体的に使うには
class hogeClass {
var $pdo;

public function __construct($con, $user, $pass, $enc='utf-8') {
try {
$this->pdo = new PDO($con, $user, $pass);
$this->pdo->query('SET NAMES ' . $enc);
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
exit('データベースに接続できませんでした。' . $e->getMessage());
}
}


public function addTest($id) {

try {
$this->pdo->beginTransaction();

// 登録
$stmt = $this->pdo->prepare('INSERT INTO HOGETBL VALUES (' .
':user_id)');
$stmt->bindParam(':user_id', $user_id);

$user_id = $id;

$stmt->execute();

$ret = $this->pdo->lastInsertId();
$this->pdo->commit();

return $ret;

} catch (PDOException $e) {
$this->pdo->rollBack();
$this->pdo = null;
print_r($_SERVER['PHP_SELF'] . $stmt->queryString . ':' . 'PDOException: ' . $e->getMessage());
}
}

// デストラクタ
public function __destruct() {
$this->pdo = null;
}
}
スポンサーサイト

jQuery toggle

メモ
$(#debug).append('test');
$(#debug).toggle('bind');

--snip--
<div id="debug"><div>

PHP jQuery Ajax mySQL を動かしたい

PHP, jQuery, Ajax, mySQL の組み合わせでとりあえず動かしてみたいのです。

場当たり的なコードがありますがとりあえず。

jQuery をダウンロードして表示するHTMLと同じフォルダへ置いておきます。

今回は「id」と「name」というカラムを持つテーブルから
idが1のユーザの名前を表示させます。

[表示するHTML]
test.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>テスト</title>
<script src="jquery-1.7.2.min.js"></script>
<script>

function showResult(result) {
var show = result.name;
$('<div>', {text: show}).appendTo(document.body);
}

$(function() {
var id = '1';
var params = '?id=' + id;
$('<script>', {src: 'ajaxtest.php' + params}).appendTo(document.head);

})

</script>
</head>
<body>
</body>
</html>

[呼び出されるPHPファイル]
ajaxtest.php

$uid = $_GET['id'];

// DB処理
$pdo = new PDO($con, $user, $pass);
$pdo->query('SET NAMES ' . $enc);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = 'SELECT * FROM USER_MST WHERE USER_ID = \'' . $uid . '\'';
$stmt = $pdo->query($sql);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$result['user_name'] = $row['USER_NAME'];
}

// 返却する配列を作成
$ret = array('name' => $profile['user_name']);

header('Content-Type: text/javascript');
print 'showResult(' . json_encode($ret) . ')';


これでIDが1のユーザ名が表示されればOK。


むむ、しかしIE8で動かないぞ。
これは調べてみます。

※調べてみました。
appendTo(document.head);
のところを
appendTo(document.body);
にすると期待通りの結果に。
ううむ。
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。