[英]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.