php - 调用存储的函数

标签 php mysql

所以我有一个像这样的存储函数,

CREATE FUNCTION `sellerQuality` (score real) RETURNS varchar(10) charset latin1
    DETERMINISTIC
BEGIN
    DECLARE theValue varchar(10);
    IF (score = 0) THEN 
        set theValue = 'UNKNOWN';
    ELSEIF (score <= 10 and score > 7) THEN 
        SET theValue = 'GOOD';
    ELSEIF ( score<=7 and score>0) THEN 
        SET theValue = 'POOR';
    END IF;
    return (theValue);
END;

我还有一个名为 PERFORMANCE 的表,如下所示

PERFORMANCE - ID, NAME, AGE, SCORE

我想要的基本上是打印姓名、年龄、分数以及分数排名的输出。

Example: Tony, 29, 90, GOOD ; Rob, 20, 60, POOR

所以我做了这样的事情:

$info = "SELECT * FROM PERFORMANCE P";   
    $query = mysqli_query($conn, $sql);
    $query = mysqli_query($conn, $info) or die(mysqli_error($conn));
    $count = mysqli_num_rows($query);
    if ($count != 0) {
        while ($result = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
            $quality = SELECT `sellerQuality` ($result["score"]);
            echo $result["name"] . "<br>";
            echo $result["age"] . "<br>";
            echo $result["score"] . "<br>";
            echo $quality. "<br>";
        }
    } else {
        echo "No results found.";
    }
    mysqli_close($conn);

我认为它看起来已经不错了,但是当我运行该页面时,它给了我:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

<小时/>

更新:

我只是想知道这是否是从 mySQL 到 php 调用函数的正确方法?

$quality = SELECT `sellerQuality`($result["score"]) AS `sellerQuality`;

谢谢。

最佳答案

在您的页面中包含

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

查看所有错误。

我猜错误会出现在这一行:

$quality = SELECT `sellerQuality` ($result["score"]);

但是最好让 php 告诉你错误在哪里。

更新:

如果你想调用MySQL函数,你可以使用

$quality = $query('SELECT sellerQuality(score) AS quality');

然后像这样使用它:

echo "The quality is: ".$quality[0]['quality'];

示例取自 here .

关于php - 调用存储的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37548680/

相关文章:

php - 如何解决创建多个静态页面的问题

php - Magento 1.7.0.2 使用示例数据安装 magento 时重定向过多

java - 如何使用 Java 从 MySQL 获取列规范?

mysql - Qt。连接名称对于连接 MySQL 服务器有值(value)吗?

php - 从 div 获取表单输入 laravel 的内容

php - 如何将 HTML 代码从另一个文件添加到 .html 文件?

mysql - 删除 SELECT Mysql 结果中的重复项,如果任何列 1 = 列 2 那么它是重复项

php - MYSQL , PHP 插入空格

php - 为什么/user/{username} 没有自动显示?

php - 从先前生成的结果集中获取值(value)