반응형
PHP 코드 내에서 MySQL 저장 프로시저를 어떻게 호출합니까?
MySQL에 작성한 저장 프로시저를 가지고 있으며 PHP에서 해당 저장 프로시저를 호출하기를 원합니다.이것을 하는 가장 좋은 방법은 무엇입니까?
-MySQL 클라이언트 버전: 4.1.11
-MySQL Server 버전: 5.0.45
저장 절차는 다음과 같습니다.
DELIMITER $$
DROP FUNCTION IF EXISTS `getNodeName` $$
CREATE FUNCTION `getTreeNodeName`(`nid` int) RETURNS varchar(25) CHARSET utf8
BEGIN
DECLARE nodeName varchar(25);
SELECT name into nodeName FROM tree
WHERE id = nid;
RETURN nodeName;
END $$
DELIMITER ;
getTreeNodeName 절차를 호출하는 PHP 코드는 무엇입니까?
이제 사용하여 솔루션을 찾았습니다.mysqli
대신에mysql
.
<?php
// enable error reporting
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
//connect to database
$connection = mysqli_connect("hostname", "user", "password", "db", "port");
//run the store proc
$result = mysqli_query($connection, "CALL StoreProcName");
//loop the result set
while ($row = mysqli_fetch_array($result)){
echo $row[0] . " - " . + $row[1];
}
저는 많은 사람들이 사용하는 것에 문제가 있는 것처럼 보인다는 것을 발견했습니다.mysql_connect, mysql_query and mysql_fetch_array
.
다음 구문을 사용하여 저장 프로시저를 호출할 수 있습니다.
$result = mysql_query('CALL getNodeChildren(2)');
이것은 준비된 문과 저장 프로시저가 하나의 값이 아닌 여러 행을 반환하는 솔루션입니다.
<?php
require 'config.php';
header('Content-type:application/json');
$connection->set_charset('utf8');
$mIds = $_GET['ids'];
$stmt = $connection->prepare("CALL sp_takes_string_returns_table(?)");
$stmt->bind_param("s", $mIds);
$stmt->execute();
$result = $stmt->get_result();
$response = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($response);
$stmt->close();
$connection->close();
<?php
$res = mysql_query('SELECT getTreeNodeName(1) AS result');
if ($res === false) {
echo mysql_errno().': '.mysql_error();
}
while ($obj = mysql_fetch_object($res)) {
echo $obj->result;
}
언급URL : https://stackoverflow.com/questions/3966747/how-to-call-a-mysql-stored-procedure-from-within-php-code
반응형
'programing' 카테고리의 다른 글
파워셸:명령줄에서 powershell을 호출할 때 변수를 스위치 매개 변수로 전달하려면 어떻게 해야 합니까? (0) | 2023.09.03 |
---|---|
UITableView 스크롤 위치를 저장하려면 어떻게 해야 합니까? (0) | 2023.09.03 |
CALayer를 위한 애니메이션 종료 콜백? (0) | 2023.09.03 |
jQTouch와 jQuery 모바일의 차이점 (0) | 2023.09.03 |
단일 행에 대한 일대다 SQL SELECT (0) | 2023.09.03 |