2 回答

TA貢獻1824條經驗 獲得超6個贊
避免在末尾出現不需要的分號,并從表名中刪除單引號。請嘗試以下操作。此外,由于您的兩個字段之間包含空格,您可以避免使用單引號并使用 `` 反引號。
$sql = "INSERT INTO customer (`customer name`,password, email, `phone number`) VALUES ('$name','$password','$email', '$phone') ";

TA貢獻1810條經驗 獲得超5個贊
您的代碼的解決方案
我假設你的name、password、email和phone是字符串。
因此它們必須出現在您最終請求中的引號之間,所以
$sql = "INSERT INTO 'customer'('customer name','password','email','phone number') VALUES([$name], [$password], [$email], [$phone]);";
改成
$sql = "INSERT INTO 'customer'('customer name','password','email','phone number') VALUES('[$name]', '[$password]', '[$email]', '[$phone]')";
此外,為了避免 SQL 注入,您應該轉義從 POST 請求中獲取的字符串,因此您應該替換
$name = $_POST['name'];
$password = $_POST['password'];
$email = $_POST['email'];
$phone = $_POST['phone'];
經過
$name = mysqli_real_escape_string($conn, $_POST['name']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$phone = mysqli_real_escape_string($conn, $_POST['phone']);
并在建立聯系后感動。
更好的解決方案(如果可以的話)
在 PHP 中處理數據庫的最佳解決方案是使用準備好的請求,甚至更好:使用像Doctrine這樣的 ORM 。它將更加安全可靠。
- 2 回答
- 0 關注
- 121 瀏覽
添加回答
舉報