получить последний идентификатор запроса с помощью pdo php [duplicate]

вам понадобится jar-соединитель mysql в вашем пути к классам.

в Java JDBC API делает все с базами данных. используя JDBC, мы можем писать приложения Java в 1. Отправить запросы или обновить SQL до DB (любая реляционная база данных). 2. Извлечь и обработать результаты из DB

с помощью трех шагов, которые мы можем извлечь из любого База данных

Connection con = DriverManager.getConnection(
                     "jdbc:myDriver:DatabaseName",
                     dBuserName,
                     dBuserPassword);

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table");

while (rs.next()) {
    int x = rs.getInt("a");
    String s = rs.getString("b");
    float f = rs.getFloat("c");
}
119
задан William Kinaan 28 September 2015 в 21:14
поделиться

2 ответа

Это потому, что это функция SQL, а не PHP. Вы можете использовать PDO::lastInsertId() .

Как:

$stmt = $db->prepare("...");
$stmt->execute();
$id = $db->lastInsertId();

Если вы хотите сделать это с помощью SQL вместо PDO API, вы бы сделали это как обычный запрос выбора:

$stmt = $db->query("SELECT LAST_INSERT_ID()");
$lastId = $stmt->fetchColumn();
255
ответ дан Your Common Sense 26 August 2018 в 16:31
поделиться

lastInsertId () работает только после запроса INSERT.

Правильно:

$stmt = $this->conn->prepare("INSERT INTO users(userName,userEmail,userPass) 
                              VALUES($username,$email,$pass)");
$sonuc = $stmt->execute();
$LAST_ID = $this->conn->lastInsertId();

Неверно:

$stmt = $this->conn->prepare("SELECT * FROM users");
$sonuc = $stmt->execute();
$LAST_ID = $this->conn->lastInsertId(); //always return string(1)=0
5
ответ дан Ayhan Kesicioğlu 26 August 2018 в 16:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: