/** * Crée une table SQL * * Crée une table SQL nommee `$nom` à partir des 2 tableaux `$champs` et `$cles` * * @note Le nom des caches doit être inferieur à 64 caractères * * @param string $nom Nom de la table SQL * @param array $champs Couples (champ => description SQL) * @param array $cles Couples (type de clé => champ(s) de la clé) * @param bool $autoinc True pour ajouter un auto-incrément sur la Primary Key * @param bool $temporary True pour créer une table temporaire * @param string $serveur Nom de la connexion * @param bool $requeter Exécuter la requête, sinon la retourner * @return array|null|resource|string * - string Texte de la requête si demandée * - true si la requête réussie, false sinon. */ function spip_sqlite_create($nom, $champs, $cles, $autoinc = false, $temporary = false, $serveur = '', $requeter = true) { $query = _sqlite_requete_create($nom, $champs, $cles, $autoinc, $temporary, $ifnotexists = true, $serveur, $requeter); if (!$query) { return false; } $res = spip_sqlite_query($query, $serveur, $requeter); // SQLite ne cree pas les KEY sur les requetes CREATE TABLE // il faut donc les faire creer ensuite if (!$requeter) { return $res; } $ok = $res ? true : false; if ($ok) { foreach ($cles as $k => $v) { if (preg_match(',^(KEY|UNIQUE)\\s,i', $k, $m)) { $index = trim(substr($k, strlen($m[1]))); $unique = strlen($m[1]) > 3; $ok &= spip_sqlite_create_index($index, $nom, $v, $unique, $serveur); } } } return $ok ? true : false; }
function spip_sqlite_create($nom, $champs, $cles, $autoinc=false, $temporary=false, $serveur='',$requeter=true) { $query = _sqlite_requete_create($nom, $champs, $cles, $autoinc, $temporary, $ifnotexists=true, $serveur, $requeter); if (!$query) return false; $res = spip_sqlite_query($query, $serveur, $requeter); // SQLite ne cree pas les KEY sur les requetes CREATE TABLE // il faut donc les faire creer ensuite if (!$requeter) return $res; $ok = $res ? true : false; if ($ok) { foreach($cles as $k=>$v) { if (strpos($k, "KEY ") === 0) { $index = preg_replace("/KEY +/", '',$k); $ok &= $res = spip_sqlite_create_index($index, $nom, $v, $serveur); } } } return $ok ? true : false; }