Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Senhores,
Estou precisando criar bancos de dados MySql, através do uso de código, mas precisa ser feito domínio específico.
Eu consegui um código que cria o banco, mas ele fica relacionado ao servidor e não em um domínio, mesmo que eu tenha feito isto, rodando um script de dentro de um domínio/site, como fica quando a gente cria pelo phpadmin.
Eu imaginei (e li) que o controle é feito através de pastas, mas criei um banco pelo PHPMyAdmin e verifiquei no servidor, mas não encontrei nenhuma pasta com o nome do domínio.
O detalhe é que o servidor é Windows + Plesk (se é que isto diz alguma coisa).
No caso do banco que eu criei, utilizei o login e a senha master do servidor. Imaginei se a definição do banco pode estar vinculada ao login e a senha do domínio, mas acho difícil.
Alguém sabe dizer como faço isto?
Obrigado!
Alex
Um exemplo de manipulação via código utilizando MySQLi
Conecta, Apaga, insere, altera propriedade, cria tabela, exclui tabela, faz o que for preciso.
<?php
$con= new MySQLi ("mysql25.tr.com.br","tr23", "yh1@call", "tr23");
if(!$con) {
// ou if(mysqli_connect_errno()!=0) {
echo "Não foi possivel conectar ao MySQL. Erro #" .
mysqli_connect_errno() . " : " . mysql_connect_error();
exit;
}
$sql = "TRUNCATE TABLE `Page 2`;";
$sql .= "INSERT INTO `Page 2`SELECT * FROM `Page 1`;";
$sql .="DELETE FROM `Page 2` LIMIT 5;";
$sql .="ALTER TABLE `Page 2` DROP `A`;";
$sql .="DELETE FROM `Page 2` WHERE `d` LIKE '%DESCRI%';";
$sql .="DELETE FROM `Page 2` WHERE `D`='';";
$sql .="ALTER TABLE `Page 2` DROP `C`;";
$sql .="ALTER TABLE `Page 2` DROP `F`;";
$sql .="ALTER TABLE `Page 2` DROP `G`;";
$sql .="ALTER TABLE `Page 2` DROP `H`;";
$sql .="ALTER TABLE `Page 2` DROP `I`;";
$sql .="ALTER TABLE `Page 2` DROP `J`;";
$sql .="ALTER TABLE `Page 2` DROP `K`;";
$sql .="ALTER TABLE `Page 2` DROP `L`;";
$sql .="ALTER TABLE `Page 2` ADD `CODPRODUTO` SMALLINT( 5 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST ;";
$sql .="ALTER TABLE `Page 2` CHANGE `B` `PRODUTO` VARCHAR( 150 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;" ;
$sql .="ALTER TABLE `Page 2` CHANGE `D` `QTDE` INT( 11 ) NULL DEFAULT NULL ;";
$sql .="ALTER TABLE `Page 2` CHANGE `E` `EMB` VARCHAR( 10 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL ;";
$sql .="INSERT INTO cotacao (CODPRODUTO, PRODUTO)
SELECT CODPRODUTO, PRODUTO FROM `Page 2`;";
$sql .="DROP TABLE `Page 2`;";
$sql .="CREATE TABLE `Page 2` (
A VARCHAR( 100 ) NULL ,
B VARCHAR( 100 ) NULL ,
C VARCHAR( 100 ) NULL ,
D VARCHAR( 100 ) NULL ,
E VARCHAR( 100 ) NULL ,
F VARCHAR( 100 ) NULL ,
G VARCHAR( 100 ) NULL ,
H VARCHAR( 100 ) NULL ,
I VARCHAR( 100 ) NULL ,
J VARCHAR( 100 ) NULL ,
K VARCHAR( 100 ) NULL ,
L VARCHAR( 100 ) NULL
) ENGINE = MYISAM ;";
include('cot.php');
if(!$con->multi_query($sql)) {
echo "Erro na consulta... " . $con->error . "<br/>";
} else {
$_af = $con->affected_rows;
echo "Numero de registros afetados... $_af <br/>";
do {
if($_res = $con->store_result()) {
// Temos um resultado
$_nr = $_res->num_rows;
echo "A consulta retornou " . (int) $_nr . " registro(s)<br/>";
if($_nr>0) {
// Primeiro o cabeçalho com os campos da tabela
echo "<table border=1>";
echo "<tr bgcolor='#f0f0f0'>";
for($_i=0;$_i<$_res->field_count;$_i++) {
$_f = $_res->fetch_field_direct($_i);
echo "<td> " . $_f->name . "</td>";
}
echo "</tr>";
// Agora o resultado
while($_row=$_res->fetch_assoc()) {
echo "<tr>";
foreach($_row as $_vlr) {
echo "<td>$_vlr</td>";
}
echo "</tr>";
}
echo "</table>";
}
}
if($con->more_results()) {
echo "<br/>";
}
} while ($con->next_result());
}
$con->close();
?>bacácea, mas o mysqli ( e eu errei ao citar ele) só conecta ao. um banco existente, veja a documentação, no caso ele ainda vai criar o banco....
Mauro,
A idéia não é trabalhar em um banco de dados já existente, a idéia é criar um banco de dados do zero primeiro.
Igor,
Pois é, não sei se eu não te entendi ou você não me entendeu...
Tenho um servidor e daí tenho acesso ao usuário e a senha do administrador do banco.
Como hospedo diversos domínios neste servidor, à partir de um deles eu criei um banco de dados por intermédio do código.
Se eu verificar pelo Plesk Global, o banco de dados está criado, mas não está ligado a domínio nenhum (se eu olho desde o domínio pelo PHP admin, consta 0 DB, daí a dúvida, pois preciso utilizá-lo no domínio específico, à partir de onde eu estou criando. A idéia é personalização de software, apenas através de um painel de controle.
Algo do tipo...
O cliente se cadastra, paga, eu libero a conta, crio o banco, crio a tabela, movo as informações do cliente para o banco dele, etc.
Eu poderia tentar fazer isto com PHP + Access, pois algumas pesquisas me mostraram que é possível, da mesma forma que eu faria com ASP. O problema é que se eu precisar utilizar o código PHP em um servidor Linux, aí a porca torce o rabo.
Veja, o problema não é a documentação mas sim a forma de utilizá-la.
Obrigado pela ajuda!
Alex
nem mesmo em localhost você cria dentro do vhost. ou dentro da pasta, ele fica fora, e no domínio ele tb fica fora, em alguns casos você nem tem acesso a ele, somente o php, para criar um banco de dados via php, você precisa acessar o servidor, com mysql_connect e depois use o mysql_query com sql de create database nome....estude as funções mysql e mysqli do php mais a linguagem do mysql, o sql....