简体   繁体   English

如何在 pdo 中返回 max(id)

[英]How to return max(id) in pdo

I am trying to return the last id and increment it to put in the value attribute.我正在尝试返回最后一个 id 并将其递增以放入 value 属性。 I can make it work with old mysql but not with the PDO.我可以让它与旧的 mysql 一起工作,但不能与 PDO 一起工作。 I am learning (I think) PDO but it is not making sense.我正在学习(我认为)PDO,但这没有意义。

Below is the code.下面是代码。

 <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>

Try this :尝试这个 :

  $stmt = $dbconn->prepare("SELECT MAX(invId) AS max_id FROM invoices");
  $stmt -> execute();
  $invNum = $stmt -> fetch(PDO::FETCH_ASSOC);
  $max_id = $invNum['max_id'];

If you want to enter a new line right away:如果您想立即输入新行:

$pdo = new PDO('mysql:host=localhost;dbname=databasename','username','password');

$statement = $pdo->prepare("INSERT INTO invoices(data1, data2, data3) VALUES (?, ?, ?)");
$statement->execute(array('bla', 'bla', 'bla'));   

$newID = $pdo->lastInsertId();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM