所以我有一个像这样的存储函数,
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);
我觉得它看起来不错,但是当我运行页面时它给了我:
无法加载资源:服务器响应状态为500 (内部服务器错误)
更新
我只是想知道这是否是从mySQL调用函数到php的正确方法?
$quality = SELECT `sellerQuality`($result["score"]) AS `sellerQuality`;
感谢。
答案 0 :(得分:1)
在您的页面中包含
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
查看所有错误。
我猜错误将在这一行:
$quality = SELECT `sellerQuality` ($result["score"]);
但最好让php告诉你错误的位置。
更新:
如果您想调用MySQLfunction,可以使用
$quality = $query('SELECT sellerQuality(score) AS quality');
后来像这样使用它:
echo "The quality is: ".$quality[0]['quality'];
取自here。
的示例