L'appel de MYSQL pour CRÉER une VUE à l'aide du code php?
besoin de quelques lumières ici, et c'est mon premier post ici.
Je voudrais appeler et utiliser mes précédemment créé mysql vue à l'aide de php... est-il possible?
ou en d'autres termes,
je me demandais....peut-on OU comment faisons-nous appel mysql point de vue, que nous avons déjà créés à l'aide de php? pour réduire la requête de longue durée de codage
standard les codes génériques comme suit :
$sql= " SELECT shipping.tarrif1, city.city_name
FROM shipping JOIN city
ON shipping.id_city = city.id_city";
$db->QueryArray($sql);
while ($row = $db->Row()) {
echo $row->city_name. " - " . $row->tarrif1 . "<br />\n";
}
maintenant pour le MYSQL VUES :
$sql= " CREATE VIEW shipsumarry AS SELECT shipping.tarrif1, city.city_name
FROM shipping JOIN city
ON shipping.id_city = city.id_city";
Pur de commande MYSQL :
query: SELECT * FROM shipsummary
EN PHP :
$sql = i'm badly stuck here...please help
Comment pouvons-nous accéder à l'aide de php.
grâce avant
Plus 1:
ok... permettez-moi de réécrire l'exemple :
$sql1= " CREATE VIEW shipsumarry AS SELECT shipping.tarrif1, city.city_name
FROM shipping JOIN city
ON shipping.id_city = city.id_city";
$sql2= "SELECT * FROM shipsummary";
$db->QueryArray($sql2);
$sql2 ne pouvez pas voir shipsummary VUE, coz il est déjà dans un autre var
la façon de les utiliser, et puis l'exécuter $sql1 ? & $sql2?
CREATE VIEW
déclaration? Je ne vois que ça affectée à la variable $sql
. Et vous n'êtes pas le recréer à chaque pageload, êtes-vous?Vue idéalement agit exactement comme un tableau. Si vous effectuez une requête en PHP comme s'il s'agissait d'un tableau. Si cela ne fonctionne pas, merci d'éditer votre post pour inclure le message d'erreur que vous recevez lorsque vous essayez le code de Michael posté.
je n'ai pas été exécuté, le coz je suis coincé après....
oui, vous avez raison, il montre l'écran est vide, et le rapport d'erreurs php déjà définie pour tout
Vérifiez que votre serveur web, les journaux d'erreur, alors. Ou partout où vous avez mis votre log de PHP pour aller. Son en générant une erreur, vous avez juste besoin de comprendre comment faire pour le voir. (Mais, je devine, c'est une erreur de permission)
OriginalL'auteur Bayu | 2011-10-07
Vous devez vous connecter pour publier un commentaire.
Le processus est le même en PHP - MySQL est un point de vue est vu par le client (PHP) comme une table ordinaire, de sorte que l'interrogation comme
devrait fonctionner correctement. Si il ne fonctionne pas correctement, l'utilisateur MySQL avec laquelle vous accédez à la vue peut avoir cassé des autorisations. (Il semble peu probable tout de même).
Mise à JOUR
Après avoir édité votre question, je peux voir le problème très clairement.
Nous ne savons pas ce que la base de données de la classe ou de framework que vous utilisez, mais si il y a une méthode comparable à
QueryArray()
qui ne retourne pas de résultat, mais seulement exécute une instruction, l'utiliser pour créer la vue à la place.Maintenant, tout cela étant dit...
À moins que la définition de la vue doit changer à chaque fois que ce code s'exécute, et à moins d'avoir une raison de puis
DROP VIEW shipsummary
à la fin de ce script d'exécution de chaque moment, il est loin, loin, loin, loin .... plus de sens de créer simplement l'afficher dans la base de données, où il va rester pour toujours, plutôt que de garder le re-créer avec PHP. Points de vue, une fois créé, séjour créée.Ne pas penser à eux comme à une requête temporaire temps/code de veille. Créer les vues que vous aurez besoin une FOIS dans votre base de données (à l'aide de PHPMyAdmin ou mysql CLI, ou cependant vous avez créé vos tables), et d'y accéder avec PHP.
j'ai déjà vérifié les privilèges mysql, et tout est entièrement vérifié, le problème principal est que j'ai déjà fait la 1ère variable php qui consistent à "CRÉER une VUE" mais la VUE n'est visible que pour la 1ère variable php, mais pas pour la 2ème variable php, en d'autres mots, je voudrais l'appeler comme ceci : $db->QueryArray($2e var, qui consistent à "SELECT * from shipsummary") cette "shipsummary" pas visible en 2ème var.. dois-je refactoriser mon php dbquery classe?
Les stocker dans des variables séparées. Pas besoin de re-utiliser
$sql
plus et plus. Magasin de la création de la vue dans une variable, de l'exécuter pour créer la vue, puis exécuter des requêtes avec les futursQueryArraY()
appels.Voir les ajouts et les notes ci-dessus.
merci pour ur dernière réponse..mais cela ne fonctionne pas Michael, coz le QueryArray() tableau renvoyé de résultat déjà, dois-je en faire la déclaration générateur de fonction à l'intérieur d'db classe? donne-moi un exemple avec cette déclaration : comment appeler "shipsummary", après que nous avons créé et attribué à $sql1, parce que nous ne pouvons pas extraire le "shipsummary" afficher dans le sql1?
OriginalL'auteur Michael Berkowski
Pourquoi ne pas simplement envoyer que
De requête mysql, il devrait fonctionner, sauf que je ne comprends pas votre question...
OriginalL'auteur Mathieu Dumoulin