【发布时间】:2018-03-09 12:07:50
【问题描述】:
它无法将数据存储到 mysql。该怎么办?所有变量和文件名都正确。
<?php
require 'connection.php';
$conn = Connect();
$id =$conn->real_escape_string ($_POST['id']);
$name = $conn->real_escape_string ($_POST['name']);
$phone = $conn->real_escape_string ($_POST['phone']);
$address = $conn->real_escape_string ($_POST['address']);
$city = $conn->real_escape_string ($_POST['city']);
$zip = $conn->real_escape_string ($_POST['zip']);
$state = $conn->real_escape_string ($_POST['state']);
$item = $conn->real_escape_string ($_POST['item']);
$status = $conn->real_escape_string ($_POST['status']);
$enquiry_date = $conn->real_escape_string ($_POST['enquiry_date']);
$enquiry_user = $conn->real_escape_string ($_POST['enquiry_user']);
$query = "INSERT into enquiry
(id, name, phone, address, city, zip, state, item, status, enquiry_date, enquiry_user)
VALUES('" . $id . "','" . $name . "','" . $phone . "','" . $address . "','" . $city . "','" . $zip . "','" . $state . "','" . $item . "','" . $status . "','" . $enquiry_date . "')";
$success = $conn->query($query);
if (!$success) {
die("Couldn't enter data: ".$conn->error);
}
echo "Thank You For Contacting Us <br>";
$conn->close();
?>
【问题讨论】:
-
使用准备好的语句可以解决转义字符串和引号的工作
-
$enquiry_user作为最后一个参数丢失 -
您已经在使用支持 prepared statements 的 API 和有界变量输入,您应该使用带有占位符(prepared statements)的参数化查询来保护您的数据库免受SQL-injection !开始使用
mysqli::prepare()和mysqli_stmt::bind_param()。 -
就像已经问过的那样,
$conn->error会提供什么吗?您是否启用了 PHP 错误报告? -
是的,我们知道 $conn 的来源。
echo $conn->error为您提供有关您遇到的错误的信息(@Qirel 和我已经告诉过您)
标签: php mysql mysqli phpmyadmin