我遇到代码问题。 假设检查输入名称是否与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>
答案 0 :(得分:0)
首先进行基本错误检查:
1检查错误日志以查看您的mysql是否引发了错误。
2验证两个变量是否存在(if(!empty(..))
3尝试INSERT INTO first_project(名称,电子邮件)VALUES(..,..)
4使用准备好的陈述。这是为了防止人们更改您的SQL查询导致安全问题(SQL注入)
您目前正在做的是如果名称存在,则回显用户发布的名称。您实际上并没有从数据库中检索任何内容(您只是检查是否有结果,不确定这是否是目的?)