本文整理汇总了PHP中sql_alter函数的典型用法代码示例。如果您正苦于以下问题:PHP sql_alter函数的具体用法?PHP sql_alter怎么用?PHP sql_alter使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了sql_alter函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: upgrade_produits
function upgrade_produits()
{
$all = sql_allfetsel("*", "spip_produits");
include_once _DIR_PLUGIN_SALE . "sale_fonctions.php";
foreach ($all as $produit) {
#var_dump($produit);
$set = array();
if (function_exists('sale')) {
$set['texte'] = sale($produit['texte']);
$set['texte'] = preg_replace(",</?p>\\s*,ims", "\n\n", $set['texte']);
$set['texte'] = preg_replace(",<br>(\n+),ims", "\\1", $set['texte']);
$set['texte'] = trim($set['texte']) . "\n";
}
$set['reference'] = trim($produit['reference']);
if (!$set['reference']) {
$set['reference'] = 'P' . trim($produit['old_id']);
#var_dump($set);
#die();
}
if (strpos($produit['poids'], ".") !== false) {
$set['poids'] = intval(round(floatval($produit['poids']) * 1000));
}
#var_dump($set);
sql_updateq("spip_produits", $set, 'id_produit=' . intval($produit['id_produit']));
}
sql_alter("table spip_produits CHANGE poids poids bigint(21) NOT NULL DEFAULT 0");
die('ok?');
}
示例2: agenda_vider_tables
function agenda_vider_tables($nom_meta_base_version)
{
sql_drop_table("spip_evenements");
#sql_drop_table("spip_mots_evenements"); // au cas ou ?
sql_alter("TABLE spip_rubriques DROP COLUMN agenda");
effacer_meta($nom_meta_base_version);
}
示例3: creer_ou_upgrader_table
/**
* Creer une table,
* ou ajouter les champs manquants si elle existe deja
*
* http://doc.spip.org/@creer_ou_upgrader_table
*
* @param string $table
* @param array $desc
* @param bool|string $autoinc
* 'auto' pour detecter automatiquement si le champ doit etre autoinc ou non
* en fonction de la table
* @param bool $upgrade
* @param string $serveur
* @return void
*/
function creer_ou_upgrader_table($table, $desc, $autoinc, $upgrade = false, $serveur = '')
{
$sql_desc = $upgrade ? sql_showtable($table, true, $serveur) : false;
if (!$sql_desc) {
if ($autoinc === 'auto') {
$autoinc = base_determine_autoinc($table, $desc);
}
sql_create($table, $desc['field'], $desc['key'], $autoinc, false, $serveur);
} else {
// ajouter les champs manquants
// on ne supprime jamais les champs, car c'est dangereux
// c'est toujours a faire manuellement
$last = '';
foreach ($desc['field'] as $field => $type) {
if (!isset($sql_desc['field'][$field])) {
sql_alter("TABLE {$table} ADD {$field} {$type}" . ($last ? " AFTER {$last}" : ""), $serveur);
}
$last = $field;
}
foreach ($desc['key'] as $key => $type) {
// Ne pas oublier les cas des cles non nommees dans la declaration et qui sont retournees
// par le showtable sous la forme d'un index de tableau "KEY $type" et non "KEY"
if (!isset($sql_desc['key'][$key]) and !isset($sql_desc['key']["{$key} {$type}"])) {
sql_alter("TABLE {$table} ADD {$key} ({$type})", $serveur);
}
$last = $field;
}
}
}
示例4: roles_auteurs_vider_tables
/**
* Fonction de désinstallation du plugin.
**/
function roles_auteurs_vider_tables($nom_meta_base_version) {
// tant qu'il existe des doublons, on supprime une ligne doublonnée
// sinon on ne pourra pas modifier la cle primaire ensuite
// cet algo est certainement a optimiser
while ($doublons = sql_allfetsel(
array('id_auteur', 'id_objet', 'objet', 'role'),
array('spip_auteurs_liens'),
'', 'id_auteur,id_objet,objet', '', '', 'COUNT(*) > 1'))
{
foreach ($doublons as $d) {
$where = array();
foreach ($d as $cle=>$valeur) {
$where[] = "$cle=".sql_quote($valeur);
}
sql_delete('spip_auteurs_liens', $where);
}
}
// supprimer la clé primaire, la colonne rôle, et remettre l'ancienne clé primaire
sql_alter("TABLE spip_auteurs_liens DROP PRIMARY KEY");
sql_alter("TABLE spip_auteurs_liens DROP COLUMN role");
sql_alter("TABLE spip_auteurs_liens ADD PRIMARY KEY (id_auteur,id_objet,objet)");
effacer_meta($nom_meta_base_version);
}
示例5: fraap_candidatures_vider_tables
function fraap_candidatures_vider_tables($nom_meta_base_version)
{
include_spip('base/abstract_sql');
sql_drop_table("spip_candidatures");
sql_alter("TABLE spip_auteurs DROP COLUMN prenom");
sql_alter("TABLE spip_auteurs DROP COLUMN activite");
effacer_meta($nom_meta_base_version);
}
示例6: organiseur_vider_tables
/**
* Desinstallation/suppression des tables mots et groupes de mots
*
* @param string $nom_meta_base_version
*/
function organiseur_vider_tables($nom_meta_base_version)
{
sql_drop_table("spip_messages");
sql_alter("TABLE spip_auteurs DROP imessage");
sql_alter("TABLE spip_auteurs DROP messagerie");
effacer_meta('messagerie_agenda');
effacer_meta($nom_meta_base_version);
}
示例7: tradrub_vider_tables
/**
* Desinstallation du plugin
*
* Suppression de la colonne id_trad uniquement s'il ne reste
* pas de traduction.
*
* @param string $nom_meta_base_version
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
* @return void
*/
function tradrub_vider_tables($nom_meta_base_version) {
// supprimer la colonne seulement s'il ne reste pas de traductions
$il_en_reste = sql_countsel('spip_rubriques', array(
'id_trad <> ' . sql_quote(0),
'id_trad <> id_rubrique')
);
if (!$il_en_reste) {
sql_alter("TABLE spip_rubriques DROP id_trad");
}
effacer_meta($nom_meta_base_version);
}
示例8: action_supprimer_champ_sql
function action_supprimer_champ_sql($table, $champ)
{
// recuperer les descriptions
// pour verifier que le champ n'est pas declare par quelqu'un
include_spip('inc/cextras');
$champs = extras_champs_anormaux();
if (isset($champs[$table][$champ])) {
// suppression
extras_log("Suppression du champ {$table}/{$champ} par auteur " . $GLOBALS['auteur_session']['id_auteur'], true);
sql_alter("TABLE {$table} DROP COLUMN " . $champ);
}
}
示例9: accesrestreint_upgrade
/**
* Fonction d'installation, mise a jour de la base
*
* @param unknown_type $nom_meta_base_version
* @param unknown_type $version_cible
*/
function accesrestreint_upgrade($nom_meta_base_version,$version_cible){
$current_version = 0.0;
if ( (!isset($GLOBALS['meta'][$nom_meta_base_version]) )
|| (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
include_spip('base/acces_restreint');
if (version_compare($current_version,'0.0','<=')){
include_spip('base/create');
include_spip('base/abstract_sql');
creer_base();
// ajout des champs publique/privee si pas existants
$desc = sql_showtable("spip_zones", true);
if (!isset($desc['field']['publique']))
sql_alter("TABLE spip_zones ADD publique ENUM('non', 'oui') DEFAULT 'oui' NOT NULL AFTER descriptif");
if (!isset($desc['field']['privee']))
sql_alter("TABLE spip_zones ADD privee ENUM('non', 'oui') DEFAULT 'non' NOT NULL AFTER publique");
echo "AccesRestreint Install<br/>";
effacer_meta($nom_meta_base_version); // salade de majuscules
ecrire_meta($nom_meta_base_version,$current_version=$version_cible,'non');
}
if (version_compare($current_version,'0.2','<')){
include_spip('base/create');
include_spip('base/abstract_sql');
// ajout des champs publique/privee si pas existants
$desc = sql_showtable("spip_zones", true);
if (!isset($desc['field']['publique']))
sql_alter("TABLE spip_zones ADD publique ENUM('non', 'oui') DEFAULT 'oui' NOT NULL AFTER descriptif");
if (!isset($desc['field']['privee']))
sql_alter("TABLE spip_zones ADD privee ENUM('non', 'oui') DEFAULT 'non' NOT NULL AFTER publique");
echo "AccesRestreint@0.2<br />";
ecrire_meta($nom_meta_base_version,$current_version='0.2','non');
}
if (version_compare($current_version,'0.3','<')){
sql_alter("TABLE `zones_auteurs` DROP INDEX `id_zone`");
sql_alter("TABLE `zones_auteurs` ADD PRIMARY KEY ( `id_zone` , `id_auteur` )");
sql_alter("TABLE `zones_rubriques` DROP INDEX `id_zone`");
sql_alter("TABLE `zones_rubriques` ADD PRIMARY KEY ( `id_zone` , `id_rubrique` )");
echo "AccesRestreint@0.3<br />";
ecrire_meta($nom_meta_base_version,$current_version='0.3','non');
}
if (version_compare($current_version,'0.3.0.1','<')){
#ecrire_meta('creer_htaccess','oui');
echo "AccesRestreint@0.3.0.1<br />";
ecrire_meta($nom_meta_base_version,$current_version='0.3.0.1','non');
}
if (version_compare($current_version,'0.3.0.2','<')){
#ecrire_meta('creer_htaccess','oui');
sql_alter("TABLE spip_zone ALTER titre SET DEFAULT ''");
sql_alter("TABLE spip_zone ALTER descriptif SET DEFAULT ''");
echo "AccesRestreint@0.3.0.2<br />";
ecrire_meta($nom_meta_base_version,$current_version='0.3.0.2','non');
}
}
}
示例10: compositions_vider_tables
/**
* Desinstallation
*
* @param string $nom_meta_base_version
*/
function compositions_vider_tables($nom_meta_base_version) {
include_spip('inc/meta');
include_spip('base/abstract_sql');
include_spip('base/objets');
$tables_objets = array_keys(lister_tables_objets_sql());
foreach($tables_objets as $table){
sql_alter("TABLE $table DROP composition");
sql_alter("TABLE $table DROP composition_lock");
}
sql_alter("TABLE spip_rubriques DROP composition_branche_lock");
effacer_meta('compositions');
effacer_meta($nom_meta_base_version);
}
示例11: vacarme_commande_vider_tables
function vacarme_commande_vider_tables($nom_meta_base_version)
{
sql_alter("TABLE spip_contacts DROP organisation");
sql_alter("TABLE spip_contacts DROP service");
sql_alter("TABLE spip_contacts DROP type_client");
sql_alter("TABLE spip_contacts_abonnements DROP numero_debut");
sql_alter("TABLE spip_contacts_abonnements DROP numero_fin");
sql_alter("TABLE spip_abonnements DROP reference");
sql_alter("TABLE spip_abonnements DROP cadeau");
sql_alter("TABLE spip_paniers_liens DROP numero");
sql_alter("TABLE spip_commandes DROP paiement");
sql_alter("TABLE spip_commandes_details DROP numero");
sql_drop_table('spip_commandes_transactions');
effacer_meta($nom_meta_base_version);
}
示例12: mots_techniques_upgrade
function mots_techniques_upgrade($nom_meta_base_version,$version_cible){
$current_version = 0.0;
if ( (!isset($GLOBALS['meta'][$nom_meta_base_version]) )
|| (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
if (version_compare($current_version,'0.0','<=')){
$champs = mots_techniques_declarer_champs_extras();
creer_champs_extras($champs);
ecrire_meta($nom_meta_base_version,$current_version=$version_cible,'non');
}
if ($current_version<0.2){
sql_alter("TABLE spip_groupes_mots DROP affiche_formulaire");
ecrire_meta($nom_meta_base_version,$current_version=$version_cible,'non');
}
}
}
示例13: genie_popularites_dist
function genie_popularites_dist($t) {
// Si c'est le premier appel, ne pas calculer
$t = $GLOBALS['meta']['date_popularites'];
ecrire_meta('date_popularites', time());
if (!$t)
return 1;
$duree = time() - $t;
list($a,$b) = genie_popularite_constantes($duree);
// du passe, faisons table (SQL) rase
sql_update('spip_articles', array('maj'=>'maj', 'popularite' => "popularite * $a"), 'popularite>1');
// enregistrer les metas...
$row = sql_fetsel('MAX(popularite) AS max, SUM(popularite) AS tot', "spip_articles");
ecrire_meta("popularite_max", $row['max']);
ecrire_meta("popularite_total", $row['tot']);
// Une fois par jour purger les referers du jour ; qui deviennent
// donc ceux de la veille ; au passage on stocke une date_statistiques
// dans spip_meta - cela permet au code d'etre "reentrant", ie ce cron
// peut etre appele par deux bases SPIP ne partageant pas le meme
// _DIR_TMP, sans tout casser...
$aujourdhui = date("Y-m-d");
if (($d = $GLOBALS['meta']['date_statistiques']) != $aujourdhui) {
spip_log("Popularite: purger referer depuis $d");
ecrire_meta('date_statistiques', $aujourdhui);
if (strncmp($GLOBALS['connexions'][0]['type'],'sqlite',6)==0)
spip_query("UPDATE spip_referers SET visites_veille=visites_jour, visites_jour=0");
else
// version 3 fois plus rapide, mais en 2 requetes
#spip_query("ALTER TABLE spip_referers CHANGE visites_jour visites_veille INT( 10 ) UNSIGNED NOT NULL DEFAULT '0',CHANGE visites_veille visites_jour INT( 10 ) UNSIGNED NOT NULL DEFAULT '0'");
#spip_query("UPDATE spip_referers SET visites_jour=0");
// version 4 fois plus rapide que la premiere, en une seule requete
sql_alter("TABLE spip_referers DROP visites_veille,
CHANGE visites_jour visites_veille INT(10) UNSIGNED NOT NULL DEFAULT '0',
ADD visites_jour INT(10) UNSIGNED NOT NULL DEFAULT '0'");
}
// et c'est fini pour cette fois-ci
return 1;
}
示例14: creer_ou_upgrader_table
function creer_ou_upgrader_table($table,$desc,$autoinc,$upgrade=false,$serveur='') {
$sql_desc = $upgrade ? sql_showtable($table,true,$serveur) : false;
if (!$sql_desc)
sql_create($table, $desc['field'], $desc['key'], $autoinc, false, $serveur);
else {
// ajouter les champs manquants
$last = '';
foreach($desc['field'] as $field=>$type){
if (!isset($sql_desc['field'][$field]))
sql_alter("TABLE $table ADD $field $type".($last?" AFTER $last":""),$serveur);
$last = $field;
}
foreach($desc['key'] as $key=>$type){
if (!isset($sql_desc['key'][$key]))
sql_alter("TABLE $table ADD $key ($type)",$serveur);
$last = $field;
}
}
}
示例15: maj_1_952
function maj_1_952()
{
$ok = sql_alter("TABLE spip_documents CHANGE `mode` `mode` enum('vignette','image','document') DEFAULT NULL");
if ($ok) {
$s = sql_select("v.id_document as id_document", "spip_documents as d join spip_documents as v ON d.id_vignette=v.id_document");
$vignettes = array();
while ($t = sql_fetch($s)) {
$vignettes[] = intval($t['id_document']);
}
$ok &= spip_query("UPDATE spip_documents SET `mode`='image' WHERE `mode`='vignette'");
$ok &= spip_query("UPDATE spip_documents SET `mode`='vignette' WHERE `mode`='image' AND " . sql_in('id_document', $vignettes));
}
if (!$ok) {
die('echec sur maj_1_952()');
}
}