Я использую это ExtensionMethod
для SqlConnection
:
public static List<string> GetTableNames(this SqlConnection connection)
{
using(SqlConnection conn = connection)
{
if(conn.State == ConnectionState.Open)
{
return conn.GetSchema("Tables").AsEnumerable().Select(s => s[2].ToString()).ToList();
}
}
//Add some error-handling instead !
return new List<string>();
}
Предполагая, что вы используете MySQL, после вставки вы можете выполнить следующий запрос:
$ array_with_id = $ this-> query ('выберите last_insert_id () as id;' );
Но, как упоминал Куак, обычный способ вставки данных - это использовать метод save (). Если вы используете этот метод, идентификатор вставленной записи будет автоматически доступен в свойстве $ id соответствующей модели.
Если вы используете метод save (), вы можете получить такой идентификатор:
$this->Model->save($data);
$id = $this->Model->id;
В классе модели Cake есть функция, которая получает последний вставленный идентификатор:
$this->Model->getLastInsertID()
строка 2584 в {project-folder} /cake/libs/model/model.php