-1

ユーザー テーブルから Id を取得しようとしています。私は持っている:

$retrieve_id = "SELECT userid FROM tb_users WHERE username = '$username'";
$user_id = intval(mysql_query($retrieve_id));

それがテーブルの値であるため、ステートメントは 1 を返す必要があります。ただし、列名 ( userid) の長さである 6 を返します。これは、他のテーブルにもクエリを実行しているときに発生します。

テーブルのみから値を取得するにはどうすればよいですか?

4

5 に答える 5

4

またはを使用して、クエリから実際の結果を取得する必要があります。mysql_resultmysql_fetch_*

$result = mysql_query("SELECT userid FROM tb_users WHERE username = '$username'");

if (!$result) {
    die('Could not query:' . mysql_error());
}

$user_id = mysql_result($result, 0); // outputs first row

すべてのmysql_関数は非推奨であり、mysqli_またはを使用する必要があることに注意PDOしてください。クエリは SQL インジェクションに対してもオープンです。

于 2013-10-08T14:17:15.210 に答える
1

http://php.net/manual/en/function.mysql-query.php

mysql_query は、値ではなくリソースを返します。

$retrieve_id = "SELECT userid FROM tb_users WHERE username = '$username'";
$result = mysql_fetch_assoc(mysql_query($retrieve_id));
$user = $result['userid'];
于 2013-10-08T14:18:14.783 に答える
0

A) mysql_* は非推奨です B) 入力をパラメータ化していることを確認してください C) これを試してください:

$result = mysql_query($retrieve_id);

$user_id=$result["userid"];
于 2013-10-08T14:18:45.943 に答える
0

関数 mysql_query は、選択クエリのリソース タイプを返します。結果を得るには、mysql_fetch_array または mysql_fetch_assoc 関数を使用する必要があります。

$retrieve_id = "SELECT userid FROM tb_users WHERE username = '$username'";
$result = mysql_query($retrieve_id));
$row = mysql_fetch_assoc($result)) {
echo $row['userid'];
于 2013-10-08T14:21:32.767 に答える
0

mysql_query()の php ドキュメントを確認してください。単に照会している値ではなく、実際にはresourceを返します。

しかし、PHP 5.5 では非推奨になっているため、使用するべきではありませmysql_query()ん。また、アップグレード時にコードをやり直す必要もありませんよね?

代わりに、mysqli_resultオブジェクトを返すmysqli_query()を使用してください。次に、そのオブジェクトから、探している値をfetch_field()で取得できます

于 2013-10-08T14:22:21.907 に答える