我需要帮助:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
include_once 'includes/funciones/funciones.php';
session_start();
usuario_autenticado();
if(isset($_POST['submit'])) {
$nombre = $_POST['nombre'];
$fecha = $_POST['fecha'];
$hora = $_POST['hora'];
$id_cat = $_POST['categorias'];
$id_invitado = $_POST['invitado'];
require_once('includes/funciones/bd_conexion.php');
if ($conn){
$strSQL="SELECT cat_evento, COUNT(DISTINCT nombre_evento) FROM eventos INNER JOIN categoria_evento ON eventos.id_cat_evento=categoria_evento.id_categoria WHERE id_cat_evento = ?";
$stmt = $conn->prepare($strSQL);
if ($stmt){
$stmt->bind_param('i', $id_cat); //Si $id_cat es numérico debes cambiar la "s" por una "i"
$stmt->execute();
$stmt->bind_result($categoria_evento, $total);
$stmt->store_result();
$stmt->fetch();
(int) $total = $total;
$total++;
$clave = substr($categoria_evento, 0, 5) . "_" . $total;
echo $clave;
}else{
echo "Consulta errónea ".$stmt->error;
}
}else{
echo "La conexión es nula";
}
}else{
echo "No hay datos en submit";
}
?>
<?php include_once 'includes/templates/header.php'; ?>
<section class="seccion contenedor">
<h2>Agregar Evento</h2>
<p>Bienvenido <?php echo $_SESSION['usuario']; ?> </p>
<?php include_once 'includes/templates/admin-nav.php'; ?>
<form class="invitado" action="agregar_evento.php" method="post">
<div class="campo">
<label for="nombre">Nombre Evento:</label>
<input type="text" name="nombre" id="nombre" placeholder="Nombre" required>
</div>
<div class="campo">
<label for="fecha">Fecha Evento:</label>
<input type="date" name="fecha" id="fecha" required>
</div>
<div class="campo">
<label for="hora">Hora Evento:</label>
<input type="time" name="hora" id="hora" required>
</div>
<div class="campo">
<label for="categoria">Categoria: </label><br>
<?php
try {
require_once('includes/funciones/bd_conexion.php');
$sql = "SELECT * FROM `categoria_evento`";
$res = $conn->query($sql);
while ($cat_eventos = $res->fetch_assoc()) {
echo '<input type="radio" name="categorias" value=' . $cat_eventos['id_categoria'] . '> ' . $cat_eventos['cat_evento'] . '<br/>';
}
} catch (Exception $e) {
echo "Error:" . $e->getMessage();
}
?>
</div>
<div class="campo">
<label for="invitado">Invitado:</label>
<?php
try {
require_once('includes/funciones/bd_conexion.php');
$sql = "SELECT `invitado_id`, `nombre_invitado`, `apellido_invitado` FROM `invitados`";
$res_invitados = $conn->query($sql);
echo "<select name='invitado'>";
while ($invitados = $res_invitados->fetch_assoc()) { ?>
<option value="<?php echo $invitados['invitado_id'] ?> ">
<?php echo $invitados['nombre_invitado'] . " " . $invitados['apellido_invitado']; ?>
</option>
<?php }
echo "</select>";
} catch (Exception $e) {
echo "Error:" . $e->getMessage();
}
?>
</div>
<div class="campo">
<input type="submit" name="submit" value="Agregar" class="button" >
</div>
</form>
<?php $conn->close(); ?>
</section>
<?php include_once 'includes/templates/footer.php'; ?>
这是没有插入代码的代码
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
include_once 'includes/funciones/funciones.php';
session_start();
usuario_autenticado();
if(isset($_POST['submit'])):
$nombre = $_POST['nombre'];
$fecha = $_POST['fecha'];
$hora = $_POST['hora'];
$id_cat = $_POST['categorias'];
$id_invitado = $_POST['invitado'];
try {
require_once('includes/funciones/bd_conexion.php');
$stmt = $conn->prepare(" SELECT cat_evento, COUNT(DISTINCT nombre_evento) FROM eventos INNER JOIN categoria_evento ON eventos.id_cat_evento=categoria_evento.id_categoria WHERE id_cat_evento = ?");
$stmt->bind_param('d', $id_cat);
$stmt->execute();
$stmt->bind_result($categoria_evento, $total);
$stmt->store_result();
$stmt->fetch();
(int) $total = $total;
$total++;
$clave = substr($categoria_evento, 0, 5) . "_" . $total;
echo $clave;
header('Location:agregar_evento.php?exitoso=1');
} catch (Exception $e) {
echo "Error:" . $e->getMessage();
} /**/
endif;
?>
<?php include_once 'includes/templates/header.php'; ?>
<section class="seccion contenedor">
<h2>Agregar Evento</h2>
<p>Bienvenido <?php echo $_SESSION['usuario']; ?> </p>
<?php include_once 'includes/templates/admin-nav.php'; ?>
<form class="invitado" action="agregar_evento.php" method="post">
<div class="campo">
<label for="nombre">Nombre Evento:</label>
<input type="text" name="nombre" id="nombre" placeholder="Nombre" required>
</div>
<div class="campo">
<label for="fecha">Fecha Evento:</label>
<input type="date" name="fecha" id="fecha" required>
</div>
<div class="campo">
<label for="hora">Hora Evento:</label>
<input type="time" name="hora" id="hora" required>
</div>
<div class="campo">
<label for="categorias">Categoria: </label><br>
<?php
try {
require_once('includes/funciones/bd_conexion.php');
$sql = "SELECT * FROM `categoria_evento`";
$res = $conn->query($sql);
while ($cat_eventos = $res->fetch_assoc()) {
echo '<input type="radio" name="categorias" value=' . $cat_eventos['id_categoria'] . '> ' . $cat_eventos['cat_evento'] . '<br/>';
}
} catch (Exception $e) {
echo "Error:" . $e->getMessage();
}
?>
</div>
<div class="campo">
<label for="invitado">Invitado:</label>
<?php
try {
require_once('includes/funciones/bd_conexion.php');
$sql = "SELECT `invitado_id`, `nombre_invitado`, `apellido_invitado` FROM `invitados`";
$res_invitados = $conn->query($sql);
echo "<select name='invitado'>";
while ($invitados = $res_invitados->fetch_assoc()) { ?>
<option value="<?php echo $invitados['invitado_id'] ?> ">
<?php echo $invitados['nombre_invitado'] . " " . $invitados['apellido_invitado']; ?>
</option>
<?php }
echo "</select>";
} catch (Exception $e) {
echo "Error:" . $e->getMessage();
}
?>
</div>
<div class="campo">
<input type="submit" name="submit" value="Agregar" class="button" >
</div>
</form>
<?php $conn->close(); ?>
</section>
<?php include_once 'includes/templates/footer.php'; ?>
这是错误
致命错误:未捕获的错误:调用 E:\Users\Bitnami\apache2\htdocs\gdlwebcamp\agregar_event.php:19 中布尔值的成员函数 bind_param() 堆栈跟踪:#0 {main} 在 E:\Users\ 中抛出Bitnami\apache2\htdocs\gdlwebcamp\add_event.php 在第 19 行
phpMyadmin 图片
![查询表]:https ://photos.app.goo.gl/x15Yj7HcVLsKN1t13
错误:
表示您尝试在此处调用
$stmt
其方法的变量:bind_param
有一个布尔值。这意味着当您准备时
$stmt
出现问题,其当前状态不是声明,而是false
.可能会发生两件事。
第一的
连接为空。
这很容易验证,而且是推荐的做法。在使用连接之前,请务必评估连接的价值。
第二
查询中有错误:语法错误、表名错误、列写错误等。在所有代码中也需要评估以了解会发生什么。
实现两种解决方案的代码
你没有放
try
... 因为在共享代码片段中它没有意义。我不知道你是否将它用于其他用途。