在 bind_param 不起作用后查询 execute() [重复]
Posted
技术标签:
【中文标题】在 bind_param 不起作用后查询 execute() [重复]【英文标题】:Query execute() after bind_param not working [duplicate] 【发布时间】:2022-01-14 17:07:42 【问题描述】:基本上是通过邮递员的发帖请求将用户发送到附加到我的网站的 php 脚本,脚本就是这个
<?php
include_once 'config.php';
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Accept, Content-Type, X-Requested-With');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE, PUT');
header('Access-Control-Max-Age: 600');
$ts = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: $ts");
header("Last-Modified: $ts");
header("Pragma: no-cache");
header("Cache-Control: no-cache, must-revalidate");
$contacto_existe = $mysqli->prepare("SELECT id FROM contactos WHERE nombre = ?");
$contacto_existe->bind_param("s", $_POST['nombre_contacto']);
$contacto_existe->execute();
$contacto_existe->store_result();
if($contacto_existe->num_rows === 0)
$contacto_existe->close();
$insertar_nuevo_contacto = $mysqli->prepare("INSERT INTO contactos (nombre, fecha_primera_interaccion, fecha_ultima_interaccion) VALUES (?, now(), now())");
$insertar_nuevo_contacto->bind_param("s", $_POST['nombre_contacto']);
$insertar_nuevo_contacto->execute();
$id_contacto = $mysqli->insert_id;
$insertar_nuevo_contacto->close();
else
$contacto_existe->bind_result($id_contacto);
$contacto_existe->fetch();
$contacto_existe->close();
$insert_mensaje = $mysqli->prepare("INSERT INTO mensajes (celular_id, contacto_id, fecha,mensaje ) VALUES (?, ?, now(),?)");
// $insert_mensaje->bind_param("s", $_POST['id_celular'], $id_contacto,$_POST['fecha_inicial'],$_POST['mensaje']);
$insert_mensaje->bind_param("s", $_POST['id_celular'], $id_contacto,$_POST['mensaje']);
$insert_mensaje->execute();
$insert_mensaje->fetch();
$insert_mensaje->close();
?>
最后我试图在 msg 表 (mensajes) 中插入上一个查询结果中的帖子值和 id_contacto (id_contact) 但它似乎正在工作,我不知道可能是什么问题
【问题讨论】:
【参考方案1】:我刚刚发现了错误。我必须在 bind_param 方法中指定该查询的值类型,在这种情况下它应该是
$insert_mensaje->bind_param("iis", $_POST['id_celular'], $id_contacto,$_POST['mensaje']);
其中 iis = 整数、整数、字符串
【讨论】:
以上是关于在 bind_param 不起作用后查询 execute() [重复]的主要内容,如果未能解决你的问题,请参考以下文章
我扩展 QApplication 并在 exec_ 后调用一个方法不起作用
CREATE TABLE 命令在 Hive 查询语言中不起作用
在计算引擎上从 PHP 的 exec() 调用时,gsutil 不起作用