我有几个关于存储过程的问题。经过数小时的搜索,我真的找不到任何非常简单的查询示例。MySQL存储过程
CREATE PROCEDURE test1(IN uid INT)
BEGIN
SELECT USER_NAME FROM USERS WHERE USER_ID = uid;
END //
此查询时间为“uid”作为输入,并选择用户名该uid, 是否有人可以解释我是如何调用该程序在PHP和也,我怎么输出的实际行到PHP的变种?
我有几个关于存储过程的问题。经过数小时的搜索,我真的找不到任何非常简单的查询示例。MySQL存储过程
CREATE PROCEDURE test1(IN uid INT)
BEGIN
SELECT USER_NAME FROM USERS WHERE USER_ID = uid;
END //
此查询时间为“uid”作为输入,并选择用户名该uid, 是否有人可以解释我是如何调用该程序在PHP和也,我怎么输出的实际行到PHP的变种?
您应该考虑与存储的函数,它返回一个VARCHAR这样做:
CREATE FUNCTION test1(uid INT) RETURNS VARCHAR(100)
BEGIN
DECLARE V_RETURN_VAL VARCHAR(100);
SELECT USER_NAME
INTO V_RETURN_VAL
FROM USERS
WHERE USER_ID = uid;
RETURN V_RETURN_VAL;
END //
据我所知,你只需要把调用之前它在查询:
$result = mysql_query("CALL test1(".$args.")");
$username = mysql_result($result);
但是,我不必在过程中定义一个'OUT'var来获取选定的行到php var吗? – 2010-08-18 11:47:00
你可以只使用“CALL”并检索行,就像它是一个普通查询一样。
唯一不同的情况是如果过程返回多个结果集,在这种情况下,您必须通过一个给出下一个结果集的方法遍历它们(甚至是空的)。
OUT参数浪费时间,因为它们需要更多往返和服务器端状态来获取其结果;如果你使用它们,你总会写更多的代码并且会有更多的错误。
使用什么数据库接口?库MySQLi? PDO?还有别的吗? – 2010-08-18 11:46:46
我已经使用phpmyadmin插入存储过程,但我试图通过php执行 – 2010-08-18 11:54:06