2013-01-11 70 views
0

我有這樣的代碼,基本上我需要從最近insterted行獲得新的ID ......我有這樣的代碼,它不工作對我來說...PDO :: FETCH_ASSOC不工作?

$sql = "INSERT INTO `cd_photo` (id, album, date) VALUES (NULL, '" .mysql_real_escape_string($_POST['album']) . "', '" . $date . "')"; 

if (@mysql_query($sql)) { 
$result = $sql->fetch(PDO::FETCH_ASSOC); 
$pageid = $result['id']; 
echo $pageid; 
echo header('Location: newimg.php?id=' .$pageid); 
} 

任何想法?

+3

PDO和mysql是單獨的庫。另外,代碼中的$ sql是一個字符串,而不是對象。 – datasage

+0

另一個問題:除非將它設置爲帶自動遞增的主鍵,否則跳過'id'列。 – inhan

+0

我建議重新閱讀PHP手冊的PDO部分:http://uk3.php.net/manual/en/pdo.connections.php –

回答

0

您正在混合兩種不同的PHP-MySQL API。我建議你使用PDO,因爲mysql_已被淘汰。這裏是你如何做PDO

$dsn = 'mysql:dbname=dbname;host=dbhost'; 
$user = 'dbusername'; 
$pass = 'dbpass'; 
$pdo = new PDO($dsn, $user, $pass); 

$sql = "INSERT INTO `cd_photo` (album, date) VALUES (:album,:date)" 
$stmt = $pdo->prepare($sql); 
$stmt->bindParam(':album', $album); 
$stmt->bindParam(':date', $date); 
$stmt->execute(); 
$pageid = $pdo->lastInsertId();