Допустим, вы создаете функцию модели CodeIgniter, которая создает пользователя.
function create($data){
$sql = "INSERT INTO people (fname,lname,age,location) VALUES(?,?,?,?)";
$this->db->query($sql, $data);
}
function get($id){
$sql = "SELECT * FROM people WHERE id = ? LIMIT 1";
return $this->db->query($sql, array($id));
}
Вы хотите create()
создать пользователя, но вернуть то же самое, что и get()
, в качестве ассоциативного массива, содержащегоидентификатор пользователя и другая вставленная информация.
Очевидно, что это можно сделать, создав массив, содержащий элементы $data
.Но подумайте о множестве полей ... это делает код уродливым и небезопасным для изменения, потому что вы будете иметь дело с числовыми массивами, не ассоциативными.
Есть ли способ для MySQL вернуть вставленную запись с идентификаторомбез необходимости повторного запроса, используя SELECT
для лучшей производительности и аккуратного кода?