繁体   English   中英

使用MySQLi将PHP输入与数据库进行比较

[英]Compare PHP input with database using MySQLi

我的代码有问题。 假设检查输入名称是否与数据库中“名称”的信息相同。

如果不是,它将打印出不同的结果,并将此信息添加到数据库中。

我的问题是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验证两个变量都存在(如果(!empty(..))

3试试INSERT INTO first_project(名称,电子邮件)VALUES(..,..)

4使用准备好的语句。 这是为了防止人们更改导致安全问题的SQL查询(SQL注入)

目前您正在做的是如果该名称存在,请回显用户发布的名称。 您实际上并没有从数据库中检索任何内容(您只是在检查是否有结果,不确定是否是目的?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM