首页 > 解决方案 > 是否可以使用(使用 PHP)先前在 mysql CLI 中声明的准备好的语句?

问题描述

在 mysql CLI 中,我准备了如下语句:

PREPARE registrarUser FROM 'INSERT INTO Users (Users_name,Email,pass) values (?,?,?)'

在我的数据库中,准备好的语句必须以这种方式完成,而不是使用这样的 php 方法::

$conn->prepare("INSERT INTO Users (Users_name,Email,pass) VALUES (?, ?, ?)");

所以我不能使用准备好的语句或绑定参数。

我已经尝试过这个查询,它模仿了 mysql CLI 中所需的语句

$query = sprintf('
SET @Users_name = "%s";
SET @Email= "%s";
SET @pass = "%s";
EXECUTE registrarUser USING @Users_name, @Email, @pass;',$Users_name,$Email,$pass);

但它返回以下语法错误:

Errormessage: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @Email= "eds@gmail.com"; SET @pass = "Thinkshap2"; EXECUTE registrar' at line 2

有谁知道是否有办法做到这一点?非常感谢您;

标签: phpmysqlmysqliprepared-statement

解决方案


这是不可能的。

来自MySQL 手册

准备好的语句的范围是创建它的会话...

  • 在一个会话中创建的准备好的语句不适用于其他会话。

推荐阅读