Ola. Estou criando um sistema de carrinho em php e pra isso preciso de um banco de dados. Pra não ficar chamando todas as funções a cada vez que a pagina atualiza, decidi usar a função mysqli_select_db, que verifica se o db existe e caso não exista, entre nas funções e crie. Porém, ao chamar a função quando o db não existe o php lança um "erro não capturado" e trava o layout. Se eu chamo o código sem o mysqli_select_db o código roda, porem chamando as funções a cada atualização. Poderia ser algum erro na api, ou tem uma nova forma pra pegar o tipo mysqli no php8?
Esse é o código que eu chamo pra salvar os dados:
```php
public function save($host,$user,$pass,$db){
$connection = mysqli_connect($host, $user, $pass);
if($connection){
if(mysqli_select_db($connect,$db)){
}
$dbCreator = "CREATE DATABASE IF NOT EXISTS ".$db;
if(mysqli_query($connection, $dbCreator)){
//echo "Database created successfully"."</br>";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($connection);
return 0;
}
$tableCreator = "CREATE TABLE IF NOT EXISTS `".$db."_tb` (".
"`name` VARCHAR(64) NOT NULL,".
"`price` REAL,".
"`amount` SMALLINT,".
"`barcode` BIGINT NOT NULL PRIMARY KEY,".
"`lot` VARCHAR(64) NOT NULL,".
"`manufactured` VARCHAR(10) NOT NULL,".
"`maturity` VARCHAR(10) NOT NULL".
");";
$insert = "INSERT INTO ".$db."_tb (`name`, `price`, `amount`, `barcode`, `lot`, `manufactured`, `maturity`) ".
"SELECT ".
"\"$this->name\",".
"\"$this->price\",".
"\"$this->amount\",".
"\"$this->barcode\",".
"\"$this->lot\",".
"\"$this->manufactured\",".
"\"$this->maturity\"".
" FROM dual WHERE NOT EXISTS(SELECT * FROM $db"."_tb WHERE barcode = '$this->barcode')LIMIT 1;";
if(mysqli_select_db($connection,$db)){
if(mysqli_query($connection,$tableCreator));//echo "Tabela ".$db."_tb criada com sucesso.<br/>";
if(mysqli_query($connection,$insert));//echo "Dados inseridos com sucesso em $db"."_tb<br/>";
}
mysqli_close($connection);
return 1;
}
return 0;
}
```
Criei um sistema de login com php e mysql mas não consigo realizar o login mesmo tendo certeza de que os dados foram cadastrados com sucesso. Não sei o que fiz de errado. Vejam o código:
<?php
$login2 = $_POST['loginlogar'];
$senha2 = $_POST['senhalogar'];
$link = mysqli_connect("localhost", "root", "", "bancolanche")
or die("<h1>Não foi possível conectar!!</h1>". mysqli_error());
$banco = mysqli_select_db($link, "bancolanche")
or die("<h1>Não foi possível abrir banco de dados!!</h1>". mysqli_error());
$sql = "SELECT login, senha FROM users";
$resulta = mysqli_query($link, $sql);
while ($book = $resulta->fetch_object()) {
$logindb = $book->login;
$senhadb = $book->senha;
}
if($login2 == "" || $senha2 == ""){
$_SESSION['msg'] = "<h1 style='color:red'>Erro ao logar! Há campos de preenchimento obrigatório em branco.</h1>";
header("Location: logar.php");
} else {
if($logindb==$login2 && $senhadb==$senha2){
$_SESSION['msg'] = "<h1 style='color:green'>Logoff realizado com sucesso!</h1>";
header("Location: index.html");
} else {
$_SESSION['msg'] = "<h1 style='color:red'>Erro ao logar! Usuário inexistente ou senha incorreta.</h1>";
header("Location: logar.php");
}
}
mysqli_close($link);
?>
Estou tentando fazer uma consulta que soma os valores de um campo em determinado mês/ano mas não estou conseguindo fazer funcionar. Alguém tem uma ideia do que pode ser?
"SELECT sum(caepf) AS scaepf
FROM atend
WHERE
date_format(data, '%Y-%m') <= date_format('$d', '%Y-%m')
AND date_format(data, '%Y-%m') >= date_format('$d', '%Y-%m')
AND pav = '$nome_pav'
AND dr = '$dr' ";
Salve galera, boa tarde a todos.
estou tendo um problema que ainda nao consegui enxergar... faço uma consulta mysql que funciona normalmente no proprio ambiente(mysql) mas ao solicitar a exibição do campo via php gera nao exibe e me tras um alerta.
****codigo php
function monta_avaliacao($cpf){
$query = mysqli_query($_SESSION["conector"],"SELECT c.*, a. cliente AS clientes FROM clientes AS c INNER JOIN avaliacoes AS a ON c.id = a.cliente WHERE c.cpf='$cpf'");
$dados = mysqli_fetch_assoc($query);
print $dados['c.cpf'];
}
*****sainda no html
Notice: Undefined index: c.cpf in C:\xampp\htdocs\acus\inclusoes\funcoes.php on line 29 Notice: Undefined index: a.pe in C:\xampp\htdocs\acus\inclusoes\funcoes.php on line 30
tenho um arquivo com as funções, e apenas mando os parametros.