这是我的功能:
function get_fname($un){
$registerquery = $this->conn->query("SELECT f_name FROM tz_members WHERE
usr='".$un."'");
while ($row = $registerquery->fetch_assoc()) {
return $fname = $row[$un];
}
}
我选择回答我自己的问题,因为它有一个编辑。
@Mark Baker:
<?php
require_once 'Mysql.php';
$mysql = new Mysql();
?>
<html>
<head>
</head>
<body>
<h4><?php echo $mysql->get_fname("joann"); ?></h4>
</body>
</html>
我就是这样做的......
答案 0 :(得分:3)
您的查询似乎失败了。因为在这种情况下query
会返回 false 。所以试试这个:
$registerquery = $this->conn->query("SELECT f_name FROM tz_members WHERE
usr='".$un."'");
if ($registerquery) {
while ($row = $registerquery->fetch_assoc()) {
return $fname = $row[$un];
}
}
当$un
包含破坏字符串声明的字符(如'
或\
)时,查询中的语法错误可能导致失败。您应该使用MySQLi::real_escape_string
来转义这些字符以防止这种情况发生。
此外,函数只能返回一次值。因此while
将在第一行之后中止。
答案 1 :(得分:1)
$ fname = $ row [$ un];将$ row [$ un]中的值赋给变量$ fname,然后返回结果。 对$ fname执行赋值是没有意义的,因为$ fname只是函数中的局部变量....如果它被定义为全局,那么它不是很好的编程习惯。
如果echo $ mysql-&gt; get_fname(“joann”)是您调用get_fname()函数的行,那么如何设置$ mysql?
如果数据库查询找不到查询的任何有效结果,您认为会发生什么?
答案 2 :(得分:0)
while ($row = fetch_assoc($registerquery)) {
return $fname = $row[$un];
}
}
答案 3 :(得分:0)
您是否可能忘记在连接中提供表名?
$ conn = new mysqli('localhost','root','password','ANY VALUE HERE ??');