我的php脚本正在使用localhost,否则它无法在线工作(虚拟主机)
php版本和SQL一样
我不知道它有什么问题:
<?php
error_log();
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'controleestoque';
// conexão e seleção do banco de dados
$con = mysqlI_connect($host, $user, $pass, $db);
// GET ID
if(isset($_GET['id']))
{
$idUsuario = $_GET['id'];
$query = "SELECT * FROM usuarios WHERE idUsuario = '$idUsuario'";
$qr = mysqli_query($con, $query) or die(mysqli_error());
$ln = mysqli_fetch_assoc($qr);
$nomeUsuario = $ln['nomeUsuario'];
$celularUsuario = $ln['celularUsuario'];
$emailUsuario = $ln['emailUsuario'];
$dataBoleto = date("Y-m-d");
$tipoPlano = "planoPrata";
$valorBoleto = "120,00";
/* Verifica se já tem um ID Boleto Repetido */
while(true){
$idBoleto = rand(1, 99999999999);
$res = "SELECT * FROM boleto WHERE idBoleto = '$idBoleto'";
$search = mysqli_query($con, $res);
if(mysqli_num_rows($search) == 0){
break;
}
}
/* Se não retornar com ID Boleto igual -> Continua */
$sql = mysqli_query("INSERT INTO boleto (idBoleto, tipoPlano, valorBoleto, idUsuario, nomeUsuario, celularUsuario, emailUsuario, dataBoleto) values ('$idBoleto', '$tipoPlano', '$valorBoleto', '$idUsuario', '$nomeUsuario', '$celularUsuario', '$emailUsuario', '$dataBoleto')");
header("Location:gerar_boletoPrata.php?id=$idBoleto");
} /* Termina Isset Get ID */
else {
echo "
<meta http-equiv='refresh' content='0; url=index1.php' />
<script type='text/javascript'>alert ('Você precisa estar logado para visualizar esta página!!')</script>
";
}
// END
?>
错误是:没有在数据库上插入,也没有为用户显示正确的$ idBoleto
有人可以帮我吗???
答案 0 :(得分:1)
您从未将连接传递给此:
$sql = mysqli_query("INSERT INTO boleto ... ");
因此:
$sql = mysqli_query($con, "INSERT INTO boleto ... ");
并检查所有查询的错误:
你也开始严肃的SQL注入;使用准备好的声明:
最好在标题后添加exit;
。
header("Location:gerar_boletoPrata.php?id=$idBoleto");
exit;
否则,您的代码可能希望继续执行。
另请注意,mysqli_error()
需要数据库连接作为参数。
根据the manual:
字符串mysqli_error(mysqli $ link)
<强>脚注:强>
我建议您使用全部小写字母mysqli_connect
而不是mysqlI_connect
,因为大写I
(i)可能会分散注意力。