我为我的PHP CRUD开发了create函数,数据库连接成功,但是当我发布数据时,它没有执行任何操作。它应该要么说数据已成功发布,要么说有错误。
我有两页:
连接.php:
<?php
$con = new mysqli('localhost', 'root', '', 'crudoperation');
if(!$con){
die(mysqli_error($con));
}else{
echo 'database connection successfully established';
}
?>
和user.php
<?php
include 'connect.php';
if (isset($_POST['submit'])){ // si on appuye sur submit, poster tous les champs
$name=$_POST['name'];
$email=$_POST['email'];
$mobile=$_POST['mobile'];
$password=$_POST['password'];
$sql="insert into `crud` (name, email, mobile, password)
values('$name','$email','$mobile','$password')";
$result=mysqli_query($con, $sql);
if($result){
echo "Data inserted successfully";
}else{
die(mysqli_error($con));
}
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>CRUD PHP</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
</head>
<body>
<div class="container my-5">
<form method="post">
<div class="mb-3">
<label>Name</label>
<input type="text" class="form-control" placeholder="Enter your name" name="name" autocomplete="off">
</div>
<div class="mb-3">
<label>Email</label>
<input type="email" class="form-control" placeholder="Enter your email" name="email" autocomplete="off">
</div>
<div class="mb-3">
<label>Mobile</label>
<input type="text" class="form-control" placeholder="Enter your mobile number" name="mobile" autocomplete="off">
</div>
<div class="mb-3">
<label>Password</label>
<input type="password" class="form-control" placeholder="Enter your password" name="password" autocomplete="off">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy" crossorigin="anonymous"></script>
</body>
</html>
可能是什么问题?
我删除了之前的
name="submit"
,它没有向我显示白屏,而是向我显示了与提交之前相同的表单。
我的错误的答案是我没有激活错误报告。 激活它:
您必须创建一个在代码编辑器中打开的文件并将其命名为 info.php 在里面添加:
<?php
phpinfo();
您将看到一个包含 php 版本的页面和一个包含信息的表格。 在 Mac 上执行 cmd f 或在 Windows 上执行 ctrl f 并搜索
Loaded Configuration File
。您会发现它的值是包含 php.ini 文件的路径。在您的目录中找到它并使用您喜欢的代码编辑器打开该文件。
进入后,我们要在两个地方编辑该文件。首先在 mac 上使用 cmd f/在 windows 上使用 ctrl f 搜索 error_reporting 并确保error_reporting = E_ALL
。如果不是,请将其替换为正确的值。
然后在 mac 上使用 cmd f/在 windows 上使用 ctrl f 搜索 display_errors 并确保 display_errors = On。如果不是,请将其替换为正确的值。然后重新启动 MAMP/XAMP/WAMP。
现在您需要犯一个错误,因此在 info.php 文件中将代码替换为以下代码:
<?php
phpinfo(;
一旦你想象,你就会看到错误出现。
在我的例子中,错误是数据库密码为空,而需要有密码。我找到了旧密码并输入它,这解决了问题。