如何使用 PHP 从 MySQL 数据库获取响应

How to get response from MySQL database using PHP

我正在使用一个将文件分配给用户的系统。问题是,响应 userid 始终为 0。

$user = htmlentities($_SESSION['username']);

$sql = "INSERT INTO `files`(
`userid`, 
`filename`, 
`filesize`, 
`filetype`, 
`filepath`
) 
VALUES 
(\"". get_user_id($user). "\",\"". 
$_FILES['userfile']['name']. "\",\"". 
$_FILES['userfile']['size']. "\",\"". 
$_FILES['userfile']['type']. "\",\"". 
$fileadress. 
"\")";

函数get_user_id

function get_user_id($user){
mysql_connect(HOST, USER, PASSWORD)
or die(mysql_error());

$sqlinit = "USE secure_login";
mysql_query($sqlinit);

$sql = "SELECT `id` FROM `members` WHERE `username` = '". $user."'";
$result = mysql_query($sql);
//mysql_fetch_array($result);
echo mysql_error();
$userid = $result;
return $userid;
}

没有错误,没有警告,其他一切正常,只有 userid 始终显示为 0,即使成员中的 id 为 1,2 等。我是否遗漏了什么?在这两个表中,userid 和 id 都是 int.

我相信你必须使用 $userid=$result['id']

mysql_query() returns你一个mysql对象,你把这个对象放在result变量中。因此,如果您执行 $userid = $result;,您只需将数组复制到一个新变量。

您没有正确访问该元素,您应该改写:$userid = $result['id'];

养成使用var_dump($result);的习惯,看看你到底有什么变化(这里是结果)

编辑:

$sql = "SELECT id FROM members WHERE username = '". $user."'";
$queryRes = mysql_query($sql);
$result = mysql_fetch_array($queryRes);
$userid = $result['id'];

根据您的 table,正确的索引是 userid

即:

$userid = $result['id'];