Проблема с процедурой в PHP и MySQL

Когда я запускаю свою программу в первый раз, я хотел бы создать следующую процедуру:

$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

Решение

Вы должны фактически выполнить эти операторы 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

Другие решения

На самом деле я не создавал процедуру, а определял ее как строку, спасибо @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/>";
}
0

По вопросам рекламы [email protected]