gpt4 book ai didi

php - 使用 PDO::prepare 创建一个在其 create 语句中有问号的函数?

转载 作者:行者123 更新时间:2023-11-28 23:42:18 25 4
gpt4 key购买 nike

我正在尝试创建一个带有 PDO 连接的函数:

$sql = "
DROP PROCEDURE IF EXISTS `test_procedure`;

CREATE DEFINER = `root`@`%` PROCEDURE `test_procedure`()
SQL SECURITY INVOKER
BEGIN
/* this goes wrong ? */
SET @a = 1;

END;
";

$db = new PDO("mysql:host=localhost;dbname=test123", "root", "password");

$statement = $db->prepare($sql);
$statement->execute();

问题是这个函数在注释里面有一个问号。由于 prepare ,PDO 现在尝试将参数绑定(bind)到这个问号,这当然会失败。

由于我不能确定我所有的函数创建语句在注释中都没有问号,有什么办法可以解决这个问题吗?

更新

  • 使用 DELIMITER 似乎对 PDO 根本不起作用,所以我更新了原来的问题。不知何故在这里不需要使用 DELIMITER?
  • 使用 PDO::exec() 似乎可以在注释中使用问号,因为那时没有绑定(bind)任何参数

最佳答案

假设在您的要求中您无法控制要执行的内容,也许您可​​以使用 str_replace ,甚至 preg_replace删除评论中的问号。

关于php - 使用 PDO::prepare 创建一个在其 create 语句中有问号的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34159644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com