查询解决方案



我在启动项目时遇到查询问题。据说

解析错误:语法错误、意外的"$sql"(T_VARIABLE( C:\Users\ahmed\Documents\zadacaveb\Call 居中\Dateof_seminars\forma.php在第 34 行

当我按下按钮 Dodaj (英语.添加(。我认为我的查询没有问题,所以如果您看到我的查询中哪里有错误,请告诉我。我将展示我的 forma 代码.php这是一个问题,以及来自文件索引的代码.php 和 delete.php。这两个文档工作正常,但问题出在形式上.php

索引.php

<?php
require('../util/session.php');
require('../util/db.php');
require('../Frontend/header.php');
require('../Frontend/footer.php');
if(!isset($_SESSION['user'])) {
header('Location: /Call Center/Login/index.php');
}
$stmt = $db->query('SELECT * FROM dateof_seminars');
$rows = $stmt->fetchAll();
echo $header;
?>

<br/>
<br/>
<div class="container">
<a href="/Call Center/Dateof_seminars/forma.php" class="btn btn-primary mt-3 mb-3 float-left">Dodaj</a>
<br/>
<br/>
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Počinje datuma</th>
<th scope="col">Završava datumom</th>
<th scope="col">Instruktor ID</th>
<th scope="col">Seminar ID</th>
<th scope="col">Klijent ID</th>
</tr>
</thead>
<tbody>
<?php foreach($rows as $row) { ?>
<tr>
<th scope="row"><?php echo $row['id']; ?></th>
<td><?php echo $row['date_from']; ?></td>
<td><?php echo $row['date_to']; ?></td>
<td><?php echo $row['instructor_id']; ?></td>
<td><?php echo $row['seminars_id']; ?></td>
<td><?php echo $row['clients_id']; ?></td>
<td>
<a class="btn btn-primary" href="/Call Center/Dateof_seminars/forma.php?id=<?php echo $row['id']; ?>">Edit</a>
<a class="btn btn-danger" href="/Call Center/Dateof_seminars/delete.php?id=<?php echo $row['id']; ?>">Delete</a>
</tr>
<?php } ?>
</tbody>
</table>
</center>
</div>
<?php
echo $footer;
?> 

形式.php

<?php
require('../util/db.php');
require('../Frontend/header.php');
require('../Frontend/footer.php');
echo $header;
$isEditing = isset($_GET['id']);
if(isset($_POST['date_from']) && isset($_POST['date_to']) && isset($_POST['instructor_id']) && isset($_POST['seminars_id']) && isset($_POST['clients_id']) && is_numeric($_POST['id'])) {
$dateFrom = $_POST['date_from'];
$dateTo = $_POST['date_to'];
$instructorId = $_POST['instructor_id'];
$seminarsId = $_POST['seminars_id'];
$clientsId = $_POST['clients_id'];
$seminarDateId = $_POST['id']; 
$sql = 'UPDATE dateof_seminars SET date_from = :date_from, date_to = :date_to, instrucrot_id = :instructor_id, seminars_id = :seminars_id, clients = :clients_id WHERE id = :id';
$stmt = $db->prepare($sql);
$stmt->execute(['companie_name' => $dateFrom, 'date_to' => $dateTo, 'instructor_id' => $instructorId, 'seminars_id' => $seminarsId, 'clients_id' => $clientsId, 'id' => $seminarDateId]);
header('Location: /Call Center/Dateof_seminars/index.php');
} else if(isset($_POST['date_from'] && isset($POST['date_to']) && isset($_POST['instructor_id']) && isset($_POST['seminars_id']) && isset($_POST['clients_id']))) {
$dateFrom = $_POST['date_from'];
$dateTo = $_POST['date_to'];
$instructorId = $_POST['instructor_id'];
$seminarsId = $_POST['seminars_id'];
$clientsId = $_POST['clients_id']
$sql = 'INSERT INTO dateof_seminars (date_from, date_to, instructor_id, seminars_id, clients_id) VALUES (:date_from, :date_to, :instructor_id, :seminars_id, :clients_id)';
$stmt = $db->prepare($sql);
$stmt->execute(['date_from' => $dateFrom, 'date_to' => $dateTo, 'instructor_id' => $instructorId, 'seminars_id' => $seminarsId, 'clients_id' => $clientsId]);
header('Location: /Call Center/Dateof_seminars/index.php');
}
if($isEditing) {
$companieId = $_GET['id'];
$sql = 'SELECT * FROM dateof_seminars WHERE id = :id';
$stmt = $db->prepare($sql);
$stmt->execute(['id' => $seminarDateId]);
$seminarDate = $stmt->fetch();
}
?>
<br/>
<br/>
<div class="container">
<div class="row">
<div class="col-sm-6 mx-auto mt-5">
<form action="/Call Center/Dateof_seminars/forma.php" method="POST">
<div class="form-group">
<label for="name">Dodajte datum seminara</label>
<br>
<input type="hidden" name="id" value="<?= @$dateod_seminars['id'] ?>" />
<label for="name">Datum početka seminara</label>
<input name="date_from" type="text" class="form-control" value="<?= @$dateof_seminars['date_from'] ?>" id="name" placeholder="početak seminara...">
<label for="name">Datum završetka seminara</label>
<input name="date_to" type="text" class="form-control" value="<?= @$dateof_seminars['date_to'] ?>" id="name" placeholder="kraj seminara...">
<label for="name">Kod instruktora</label>
<input name="instructor_id" type="text" class="form-control" value="<?= @$dateof_seminars['instructor_id'] ?>" id="name" placeholder="instruktor...">
<label for="name">Kod seminara</label>
<input name="seminars_id" type="text" class="form-control" value="<?= @$dateof_seminars['seminars_id'] ?>" id="name" placeholder="seminar...">
<label for="name">Kod klijenta</label>
<input name="clients_id" type="text" class="form-control" value="<?= @$dateof_seminars['clients_id'] ?>" id="name" placeholder="tvrtka...">
<label for="name">Šifra kompanije</label>
</div>
<button type="submit" class="btn btn-primary">Dodaj</button> 
</form>
<break/>
<br>
<br>
</div>
</div>
</div>
<?php
echo $footer;
?>

删除.php

<?php
require('../util/db.php');
$seminarDateId = $_GET['id'];
$sql = 'DELETE FROM dateof_seminars WHERE id = :id';
$stmt = $db->prepare($sql);
$stmt->execute(['id' => $seminarDateId]);
header('Location: /Call Center/Dateof_seminars/index.php');
?>

您在一行中缺少一个分号,即:

$dateFrom = $_POST['date_from'];
$dateTo = $_POST['date_to'];
$instructorId = $_POST['instructor_id'];
$seminarsId = $_POST['seminars_id'];
$clientsId = $_POST['clients_id']  <----
$sql = 'INSERT INTO dateof_seminars (date_from, date_to, instructor_id, seminars_id, clients_id) VALUES (:date_from, :date_to, :instructor_id, :seminars_id, :clients_id)';
$stmt = $db->prepare($sql);

因此,下一行的$sql是意外的,编译器不知道如何处理它。

在提到的第 34 行(这个:$sql = 'INSERT INTO dateof_seminars (date_from, date_to, instructor_id, seminars_id, clients_id) VALUES (:date_from, :date_to, :instructor_id, :seminars_id, :clients_id)';(

你必须像这样用双引号替换单引号

$sql = "INSERT INTO dateof_seminars (date_from, date_to, instructor_id, seminars_id, clients_id) VALUES (:date_from, :date_to, :instructor_id, :seminars_id, :clients_id)";

据我所知,您不能在单引号中使用变量。

最新更新