コード例 #1
0
ファイル: sqlite_generique.php プロジェクト: JLuc/SPIP
/**
 * 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;
}
コード例 #2
0
ファイル: sqlite_generique.php プロジェクト: rhertzog/lcs
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;
}