Я использую затмение Kepler для кода. Я использую Java сервлет и MySQL для хранения данных (часть требования назначения). У меня есть проблема с файлом add.php, который я создал для вставки данных в БД с помощью JavaScript, который направляет их в сервлет. У меня также есть код PHP на странице, которая отображает данные, которые находятся в базе данных. Проблема в том, что коды PHP отображаются, но не выполняются. Если я прогоню Http: //localhost/e-RMS/WebContent/add.php, PHP будет выполняться, но сервлет не будет выполняться (без добавления данных в БД). Все идет наоборот. Если я использую HTTP: // локальный: 8080 / е-RMS / add.php (из eclipse с запущенным Apache tomcat v7) он запустит сервлет, но только распечатывает код PHP без его выполнения. Я установил PHP PDT с интерпретаторами версии 5.4 и все еще не работает.
Код add.php:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Add table</title>
</head>
<body>
<?php
$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'resto';
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql="SELECT table_No, pax_No FROM reserve";
$result = $conn->query($sql);
if($result->num_rows > 0) {
while ($row = $result ->fetch_assoc()) {
echo "tableNo.: ".$row["table_No"]. " paxNo.: " .$row["pax_No"]." <br>" ;
}
} else {
echo "no result";
}
$conn->close();
?>
<form method="post" action="add">
<label for="studentName">Table No.</label>
<input type="text" id="tableNo" name="tableNo"/>
<br/>
<label for="studentID">pax amount:</label>
<input type="text" id="paxNo" name="paxNo"/>
<br/>
<input type="submit" />
</form>
</body>
</html>
Обратите внимание, что мне не разрешено использовать PHP для вставки моих данных. Я должен использовать сервлет. Можно ли получить данные из моей БД с помощью Jscript?
Изменить: оператор INSERT находится в сервлете
//connect to DB
Connection conn = null;
String db = "jdbc:mysql://localhost:3306/resto";
String db_driver = "com.mysql.jdbc.Driver";
String user = "root";
String pass = "";
try {
Class.forName(db_driver);
conn = DriverManager.getConnection(db, user, pass);
PreparedStatement stmt = conn.prepareStatement("insert into reserve(table_No, pax_No) values(?,?)");
stmt.setInt(1, tableNo);
stmt.setInt(2, paxNo);
stmt.executeUpdate();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Задача ещё не решена.
Других решений пока нет …