2

このコードは、データベースからユーザー ID を取得することになっていますが、これを返します: Resource id #6

では、これをどのようにコーディングしてユーザー ID を返すようにすればよいでしょうか? これまでのコードは次のとおりで、mysql_query が時代遅れになっていることがわかります。

<?php
include("login_check.php");
include("dbconnect.php");
mysql_select_db("maxgee_close2");
$username = $_COOKIE['maxgee_me_user']; 
$user_id = mysql_query("select user_id from users where username = '$username'");
echo "$user_id";
?>
4

3 に答える 3

2

mysql_query()ドキュメントから:

SELECT、SHOW、DESCRIBE、EXPLAIN、および結果セットを返すその他のステートメントの場合、mysql_query() は成功するとリソースを返し、エラーの場合は FALSE を返します。

...

返された結果リソースは、返されたデータにアクセスするために、mysql_fetch_array() および結果テーブルを処理するためのその他の関数に渡される必要があります。

tl;dr mysql_query は、mysql_fetch_array() などの別の関数に渡す必要があるリソースを返します。リソース自体には行が含まれていません。

于 2012-10-23T22:17:17.413 に答える
2

そのコードは ID ではなく、リソースを返すはずです! 次に、そのリソースのデータにアクセスする必要があります。ここを読んでください: http://www.tizag.com/mysqlTutorial/mysqlfetcharray.php (または、公式の PHP ドキュメント)

于 2012-10-23T22:17:46.910 に答える
2
mysql_connect("localhost", "mysql_user", "mysql_password") or 
  die("Could not connect: " . mysql_error());
mysql_select_db("maxgee_close2");
$result = mysql_query("select user_id from users where username = '$username'");
$row = mysql_fetch_array($result);
echo $row['user_id'];    
mysql_free_result($result);
于 2012-10-23T22:18:52.120 に答える