>我已经查看了我正在尝试执行的其他结果,它们都没有做我需要它们做的事情。我想做的是这样的:
myfunction(){
require('./connect.php'); //connect to database
$query = mysql_query("SELECT * FROM users WHERE username='$user'"); //user is defined outside the function but it works in my login function which i use the same way.
$numrows = mysql_num_rows($query);
if($numrows == 1){
$row = mysql_fetch_assoc($query);
$value = row['value'];
mysql_close();
return $value;
} else {
$errmsg = "connection failed.";
$value = 0;
return $value;
}
}
在我的 php 文件中,我会在顶部做这样的事情。
$value = myfunction();
这行不通。最终,我要完成的是从数据库中获取一个值,并从另一个文件中的函数输出它。(这是我在StackOverflow上的第一篇文章,所以如果我需要更改这一点,请随时告诉我,我会)
您的代码有几个语法错误。检查这个,并阅读我的评论:
function myfunction() {
//connect to database
require('./connect.php');
//user is defined outside the function but it works in my login function which i use the same way.
$query = mysql_query("SELECT * FROM users WHERE username='" . mysql_real_escape_string($user) . "'");
$numrows = mysql_num_rows($query);
if ($numrows == 1) {
$row = mysql_fetch_assoc($query);
return $row['value']; //Missing $ sign
//No need to create $value if you just return with that.
//mysql_close();
//return $value;
} else {
//Where do you use this errmsg????
$errmsg = "connection failed.";
return 0;
// These 2 lines are unnecessary.
//$value = 0;
//return $value;
}
} //Missing function close
在我的示例中,我刚刚保留了 mysql 函数,但请不要使用它们,它们已被弃用。改用 mysqli 或 PDO。另外,通过转义变量来避免 sql 注入!
$row = mysql_fetch_assoc($query);
$value = row['value']; // <-------- you forgot the $
最有可能的是,提取结果的正确方法是,
$row[0]['value'];
注意:
请不要在新代码中使用
mysql_*
函数。它们不再维护并被正式弃用。看到红框了吗?请改为了解预准备语句,并使用 PDO 或 MySQLi - 本文将帮助您决定哪个语句。如果您选择PDO,这是一个很好的教程。
我想你在这里忘记了一个点。
require('./connect.php');
和一点功能改进
myfunction(){
require_once('../connect.php'); //connect to database
$query = mysql_query("SELECT * FROM users WHERE username='".$user."'"); //user is defined outside the function but it works in my login function which i use the
$numrows = mysql_num_rows($query);
if($numrows == 1){
$row = mysql_fetch_assoc($query);
$value = $row['value'];
mysql_close();
}
else{
$errmsg = "connection failed.";
$value = 0;
}
return $value;
}