【问题标题】:PHP/MSSQL.. Select ID based on username, insert to table based on ID?PHP / MSSQL ..根据用户名选择ID,根据ID插入表?
【发布时间】:2014-04-26 04:25:24
【问题描述】:

我已经查看了大量的代码和示例。这是一小段代码,但我似乎无法让它工作。

我有 dbo.accounts,其中包含 id、用户名、密码、创建时间..

我有一个简单的表单,你输入用户名,我需要 select 查询根据用户名返回 ID。

$result = mssql_query('SELECT id FROM dbo.account WHERE name = $username');

dbo.gamemoney 表只会插入一些硬编码信息,例如游戏的硬币数量。

我的问题是,如果我使用 ID = 123 的查询,它可以工作,但是当我尝试使用用户名获取 dbo.accounts 的 id 时,我什么也得不到。

我知道它一定是小事,但我已经尝试了这么多小时,现在我真的迷路了..

感谢您的宝贵时间, 克里斯

【问题讨论】:

  • 你有什么错误吗?您还需要将 $name 放在引号内

标签: php sql-server database select insert


【解决方案1】:

由于$username是字符串类型,所以必须用引号括起来。

$result = mssql_query("SELECT id FROM dbo.account WHERE name = '$username'");

【讨论】:

  • 谢谢,实际代码中确实有引号,我用用户名 cbunting 创建了一个测试帐户。并在上面的代码示例中使用了它,带有引号,$username = cbunting,这将显示我的信息。但是当我使用提交表单并发布到同一页面时,我不再获得 id。也许我的问题是我如何发布数据。感谢您的帮助。
【解决方案2】:

作为一种更好的做法,建议使用 try-catch 场景,以便获得准确的错误日志。试试 -

$result = mssql_query('SELECT id FROM dbo.account WHERE name = "'.$username.'"') or die('MSSQL error: ' . mssql_get_last_message());

【讨论】:

  • 我确实尝试过,但也一无所获。即使回复的代码有引号,如果我使用 id = $id,我也可以提取信息,但 chars 不会知道这一点。但是当账户名输入到输入字段并提交时,一旦select尝试根据账户名抓取ID来提交,$query = "INSERT INTO dbo.gamemoney (userid,coins,creatime) VALUES ('$id',200,$creatime)";这是id为空的时候。因此,硬币永远不会添加到帐户中。所以我的问题仍然存在.. name = 'name' 由于某种原因没有返回 id。
【解决方案3】:

感谢大家的帮助!

我能够让它工作。现在我会确保它是正确的方法。我忘了补充,

while($row = mssql_fetch_array($result)) {
$id = $row['id'];
$ip = $row['ip'];
}

这就是 id 为空的原因。我错过了一些代码。 克里斯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2011-08-04
    • 2017-06-04
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    • 2016-06-27
    相关资源
    最近更新 更多