PHP和MySQL中的过程问题

时间:2014-11-26 18:29:30

标签: php mysql procedure

当我第一次运行程序时,我想创建以下过程:

$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中调用该过程时,它返回该过程不存在,我是否遗漏了上面的内容?

2 个答案:

答案 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/>";
}