0

所以到目前为止我有这个..

if(isset($_POST['Decrypt']))
{
    $dbinary = strtoupper($_POST['user2']);
    $sqlvalue = "SELECT `value` FROM `license` WHERE `binary` = '$dbinary'";
    $dvalue = mysql_query($sqlvalue) or die(mysql_error());
}

我有一个字段,用户在其中输入加密的二进制代码。(加密部分有效)。这应该从数据库中检索值。当我这样做时,它不会显示值,而是显示“资源 ID #11”。

4

3 回答 3

2

你的引用没有错。事实上,到目前为止,一切看起来都是正确的。

问题是,现在 $dvalue 只是 SQL 数据库的资源。您必须多用一行来获取内容:

$dvalue = mysql_fetch_array($dvalue);

将来,您可能希望开始使用 PDO 或 MySQLi 而不是 mysql 函数,因为从 5.5.0 开始不推荐使用这些函数。PDO 和 MySQLi 的优势在于它们提供了 SQL 注入的安全性,即当用户通过输入类似x'; DROP TABLE members; --.

于 2013-08-31T19:01:16.607 回答
0

不再使用这些mysql_功能。它们已被弃用。请改用PDOMySQLi

话虽如此,您只是在运行查询,而不是检索任何结果。您将不得不调用一个函数,例如从将返回mysqli_fetch_array的资源 ID 中获取数据。mysqli_query

我的建议是返回教程和文档,然后使用这些其他扩展之一重试。祝你好运。

于 2013-08-31T19:03:44.200 回答
-1

阅读此页面:MySQL 上的 W3 Schools 页面选择 useage。基本上 $dvalue 是一个结果集 id,您需要在另一个步骤中实际从数据库中获取数组。此外,不推荐使用 mysql_* 函数。查找并改用 mysqli_* 函数。

while($row = mysqli_fetch_array($dvalue))
{
  echo $row['value'];
  echo "<br>";
}
于 2013-08-31T19:03:07.330 回答