簡體   English   中英

我是PHP和MySQL的新手。 我無法想出這個簡單的系統

[英]I'm new to PHP and MySQL. I cannot figure this simple system out

    <?php
        $db = new mysqli("localhost","root","password","eme");

        if($db->connect_errno){ echo "Not connected."; exit();}

        echo $db->query("SELECT * FROM users") . "<br>";
        echo $_POST[FirstName] . " " . $_POST[LastName];
        $db->query("INSERT INTO users (FirstName, LastName) VALUES ('$_POST[FirstName]','$_POST[LastName]')");
        echo $db->query("SELECT * FROM users") . "<br>";

    ?>

我無法弄清楚為什么這段代碼不起作用。 輸出任何內容的唯一行是“echo $ _POST [FirstName]。”“。$ _POST [LastName];”

我的數據庫有一個“users”表,數據庫名為eme。 數據庫正確連接。

目前數據庫中沒有數據。 我想我可以添加一些“插入”,但它失敗了。

嘗試這個...

$db->query("INSERT INTO users (FirstName, LastName) VALUES('".$_POST['FirstName']."','".$_POST['LastName']."')");

有關Quotes更多信息,請查看此鏈接 - PHP中單引號和雙引號字符串之間的區別是什么?

你有幾個問題:

mysqli的query()方法返回一個mysqli_result對象。 您需要使用其中一種方法從查詢中獲取實際數據。 例如fetch_assoc()

在插入中,您需要將$_POST['FirstName']分配給變量,或者將其顯式添加到字符串中。

即。

"INSERT INTO users (FirstName, LastName) VALUES ('" . $_POST['FirstName'] . "','" . $_POST['LastName'] . "')"

要么

$first = $_POST['FirstName'];
$last = $_POST['LastName'];
"INSERT INTO users (FirstName, LastName) VALUES ('" . $first . "', '" . $last . "')"

您還應該在插入數據之前清理數據,以防止出現重大安全威脅。

最后,它本身並不是一個bug,但你應該總是使用字符串或整數值作為數組索引。

即。 你有$_POST[FirstName] ,它應該是$_POST['FirstName']$_POST["FirstName"]

它仍然可以工作,但是解釋器認為它是一個常量,沒有定義,所以假定字面值,拋出警告(可能是注意,不能記得隨便)。 這是不必要的開銷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM