2015-03-29 2 views
0

Я пытаюсь вернуть последний id и увеличить его, чтобы поместить в атрибут value. Я могу заставить его работать со старым mysql, но не с PDO. Я изучаю (я думаю) PDO, но это не имеет смысла.Как вернуть max (id) в pdo

Ниже приведен код.

<td><label for="invNum"></label>Invoice</td> 
 
    <?php 
 
    $stmt = $dbconn->prepare("SELECT max(invId) FROM  invoices"); 
 
    $stmt->execute(); 
 
    $invNum = $stmt->fetch(); 
 
    
 
    /* mysql_select_db("customers", $dbconn); 
 
    $result = mysql_query("SELECT max(invId) FROM invoices"); 
 
    if (!$result) { 
 
    die('Could not query:' . mysql_error()); 
 
    } 
 
    $invNum = mysql_result($result, 0);*/ 
 
    ?> 
 
    <td><input type="text" name="invNum" id="invNum" 
 
    size="12" value="<?php echo ++$invNum; ?>" /></td>

+1

Почему бы вам не использовать ':: lastInsertId()'? http://php.net/manual/en/pdo.lastinsertid.php – D4V1D

+0

Просто предполагая, что вы можете взять последний идентификатор и добавить его к нему, только если никто никогда не использует вашу систему ... в тот момент, когда у вас есть второй пользователь - момент, когда он ломается. –

+3

. Если вам нужно значение, вы должны иметь автоинкрементный столбец, а затем использовать 'lastInsertId()'. –

ответ

0

Попробуйте это:

$stmt = $dbconn->prepare("SELECT MAX(invId) AS max_id FROM invoices"); 
    $stmt -> execute(); 
    $invNum = $stmt -> fetch(PDO::FETCH_ASSOC); 
    $max_id = $invNum['max_id']; 
Смежные вопросы