Я пытаюсь создать сценарий Python, который будет заполнять некоторую информацию в базе данных. Для серверной части я использовал PHP, и когда я пытаюсь отправить информацию с помощью браузера, это работает. Но когда я пытаюсь сделать это с помощью приведенного ниже сценария Python, это не так.
import requests
url_insert = 'http://192.168.1.100/data.php'
data_insert = {'fullname':'spiderman',
'ssn':'1234',
'dept':'Security',
'salary':10000,
'homeaddress':'New York',
'btn_save':'Save'}
req = requests.post(url_insert, data = data_insert)
print(req.text)
Я получаю следующую ошибку:
INSERT INTO emp_record (ename, ssn, dept, salary, homeaddress) VALUES ('', '', '', , '')<br>You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '')'
Код для данных. php is:
<?php
require("database.php");
if (isset($_POST["btn_save"])) {
$fullname = $_POST["fullname"];
$ssn = $_POST["ssn"];
$dept = $_POST["dept"];
$salary = $_POST["salary"];
$homeaddress = $_POST["homeaddress"];
echo $fullname . "<br>";
echo $ssn . "<br>";
echo $dept . "<br>";
echo $salary . "<br>";
echo $homeaddress . "<br>";
}
$sql = "INSERT INTO emp_record (ename, ssn, dept, salary, homeaddress)
VALUES ('$fullname', '$ssn', '$dept', $salary, '$homeaddress')";
$result = mysqli_query($conn, $sql);
if ($result) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
?>
Показывает содержимое файла подключения к базе данных:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$database = "employees";
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
echo "Connected Successfully." . "<br>";
}
. Ниже приводится содержимое индекса. php файл, содержащий HTML форма:
<html>
<head>
<title>RETRIEVE DATA</title>
</head>
<body>
<form action="data.php" method="POST">
<div class="form-group">
<label for="id">Full Name</label>
<input type="text" name="fullname" id="fullname" value="" placeholder="FullName">
<br>
<br>
<label for="id">Social Security Number</label>
<input type="text" name="ssn" id="ssn" value="" placeholder="Social Security Number">
<br>
<br>
<label for="id">Department</label>
<input type="text" name="dept" id="dept" value="" placeholder="Department">
<br>
<br>
<label for="id">Salary</label>
<input type="text" name="salary" id="salary" value="" placeholder="Salary">
<br>
<br>
<label for="id">Address</label>
<input type="text" name="homeaddress" id="homeaddress" value="" placeholder="Address">
<br>
<br>
<input type="submit" name="btn_save" value="Save">
</div>
</form>
</body>
</html>
Я не знаю, почему это дает мне ошибку, связанную с базой данных. Потому что, когда я пытаюсь ввести данные с помощью браузера, они сохраняются в таблице базы данных.