Использование последнего вставленного id в качестве массива [duplicate]

String url = "jdbc:mysql://127.0.0.1:3306/yourdatabase";
String user = "username";
String password = "password";

// Load the Connector/J driver
Class.forName("com.mysql.jdbc.Driver").newInstance();
// Establish connection to MySQL
Connection conn = DriverManager.getConnection(url, user, password);
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 24 August 2018 в 20:30
поделиться

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 24 August 2018 в 20:30
поделиться
Другие вопросы по тегам:

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