簡體   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