我无法在 MySQL 服务器上运行此语句:
DECLARE @tabl varchar(40)
SET @tabl = :uId;
SET @location = CONCAT('data_',@tabl);
SET @b = 'INSERT INTO' + @location + '(Id, uId , name , address, phone)
VALUES (:Id, :uId, :name, :address)';
Prepare stmt FROM @b;
Execute stmt;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
没有为参数 1 指定值 - SQLException
绑定将在另一个函数中完成。
我该如何解决?
我不确定你的意思
绑定将在另一个函数中完成。
您有一个 EXECUTE 语句,它将立即调用您的查询,并且该语句不为您的:name
参数提供参数值。这就是错误消息的内容。
根据手册,您的 EXECUTE 语句必须有一个 USING 子句:
EXECUTE stmt
USING @Id, @uId, @name, @address;
Run Code Online (Sandbox Code Playgroud)
其中@Id、@uId、@name、@address可能是包含问题中脚本的存储程序的参数名称。
然后您还需要解决Julien Vavasseur和ypercube提到的问题?: