PHP PDO mysql如何检查是否创建了存储过程
这里我有一个故意错误的SQL sintaxPHP PDO mysql如何检查是否创建了存储过程,php,mysql,stored-procedures,pdo,Php,Mysql,Stored Procedures,Pdo,这里我有一个故意错误的SQL sintax $conn = new PDO($host.$bd,$user,$pass); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = ' DROP PROCEDURE IF EXISTS `mySP`; CREATE PROCEDURE `mySP`() BEGIN IF (CALL whatewer()) TH
$conn = new PDO($host.$bd,$user,$pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = '
DROP PROCEDURE IF EXISTS `mySP`;
CREATE PROCEDURE `mySP`()
BEGIN
IF (CALL whatewer()) THEN
/*some*/
ELSE
/*go stuf*/
END IF;
END;
';
$result = $conn->prepare($sql);
$result->execute();
if(!$result){
echo "BAD";
}else{
echo "GOOD";
}
问题是:
- 我的if状态切换到else->“良好”
- PDO未显示任何错误
- 未创建存储过程
mySP
,则删除程序然后PDO显示错误
问题是:
如何检查是否确实创建了一个存储过程,但如果还存在,则使用Drop过程?
prepare()/execute()
用于单个参数化语句。您正在执行两个DDL语句,为此,您应该使用PDO::exec()
尝试您所拥有的一切,将其包装为$conn->exec('all your SQL')
,假设实际SQL不接受用户输入参数。我现在已经试过$result=$conn->exec($sql);但仍然有同样的问题。为了生存,我现在使用:$result=$conn->exec($sql)$结果=$conn->exec(“调用mySP();”);