我的代码有问题。 目的是检查输入的名称是否与数据库中的Name信息相同。
如果不是,它会打印不同的结果并将此信息添加到数据库中。
我的问题是 else 中的代码永远不会工作。它总是打印 if 的结果。
另外,当我尝试复制 INSERT 的代码时,如果它不插入 数据库中的任何信息。
我做错了什么?我对 php 和 mysql 完全陌生
<!DOCTYPE HTML>
<html>
<head>
<?php
// Load the configuration file containing your database credentials
require_once('config.inc.php');
// Connect to the database
$mysqli = new mysqli($database_host, $database_user, $database_pass, $database_name);
// Check for errors before doing anything else
if($mysqli -> connect_error)
{
die('Connect Error ('.$mysqli -> connect_errno.') '.$mysqli -> connect_error);
}
$name = $_GET["name"];
$email = $_GET["email"];
$mysqli->real_query("SELECT * FROM first_project WHERE Name = '$name'");
if ($mysqli->field_count > 0 )
{
echo "HAVE A GOOD DAY! $name";
echo "Your email is $email";
}
else
{
echo "Your were not part of the database, you and your data have been added $name";
$mysqli->query( "INSERT INTO first_project VALUES ('$name', '$email')");
}
$mysqli -> close();
?>
</body>
</html>
最佳答案
首先进行基本的错误检查:
1 检查错误日志,看看你的 mysql 是否抛出错误。
2 验证两个变量都存在(if (!empty(..))
3尝试插入first_project(名称,电子邮件)VALUES(..,..)
4 使用准备好的语句。这是为了防止人们更改您的 sql 查询导致安全问题(SQL 注入(inject))
您现在正在做的是如果该名称存在,则回显用户发布的名称。您实际上并没有从数据库中检索任何内容(您只是检查是否有结果,不确定这是否是目的?)
关于php - 使用 MySQLi 将 PHP 输入与数据库进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47500884/