PHP检索数据库值

时间:2013-08-31 18:57:14

标签: php database

所以我到目前为止......

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”。

3 个答案:

答案 0 :(得分:2)

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

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

$dvalue = mysql_fetch_array($dvalue);

将来,您可能希望开始使用PDO或MySQLi而不是mysql函数,因为从5.5.0开始不推荐使用它们。 PDO和MySQLi的优势在于它们提供了SQL注入的安全性,当用户通过输入x'; DROP TABLE members; --之类的东西来运行自己的SQL代码时。

答案 1 :(得分:0)

不要再使用mysql_功能了。他们是deprecated。请改用PDOMySQLi

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

我的建议是回到教程和文档,然后再尝试使用其中一个扩展程序。祝你好运。

答案 2 :(得分:-1)

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

while($row = mysqli_fetch_array($dvalue))
{
  echo $row['value'];
  echo "<br>";
}