2013-01-11 69 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();