当我第一次运行程序时,我想创建以下过程:
$returnCusProcedure = "
DELIMITER //
CREATE PROCEDURE GetAllCustomers()
BEGIN
SELECT * FROM CUSTOMERS;
END //
DELIMITER ; ";
if(! $returnCusProcedure )
{
die('Could not create procedure: ' . $conn->error);
}
else
{
echo "Procedure created successfully<br/>";
}
回声说该过程已成功完成但是当我在MySQL中调用该过程时,它返回该过程不存在,我是否遗漏了上面的内容?
答案 0 :(得分:1)
您必须实际执行这些SQL语句。它会是这样的:
$cusProcedure = "
CREATE PROCEDURE GetAllCustomers()
BEGIN
SELECT * FROM CUSTOMERS;
END"; // <-- No need to change delimiter, at least in this case
$returnCusProcedure = $conn->query($cusProcedure); // <-- Executing SQL
if(! $returnCusProcedure )
{
die('Could not create procedure: ' . $conn->error);
}
else
{
echo "Procedure created successfully<br/>";
}
答案 1 :(得分:0)
我实际上并没有创建过程,只是将它定义为一个字符串,感谢@outlyer引起了我的注意。我已经编辑了代码,现在一切正常:
$returnCusProcedure = "
DELIMITER //
CREATE PROCEDURE GetAllCustomers()
BEGIN
SELECT * FROM CUSTOMERS;
END //
DELIMITER ; ";
$executeQuery = mysqli_query($conn, $returnCusProcedure );
if($conn->query($executeQuery) == TRUE)
{
die('Could not create procedure: ' . $conn->error);
}
else
{
echo "Procedure created successfully<br/>";
}