Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP检索数据库值_Php_Database - Fatal编程技术网

PHP检索数据库值

PHP检索数据库值,php,database,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()); } 我有一个字段,用户在其中输入一个加密的二进

到目前为止,我已经有了这个

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,而不是显示值。

您的引用没有问题。事实上,到目前为止,一切看起来都是对的

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

$dvalue = mysql_fetch_array($dvalue);
将来,您可能希望开始使用PDO或MySQLi而不是mysql函数,因为从5.5.0开始,这些函数就不推荐使用了。PDO和MySQLi的优点是它们提供了来自SQL注入的安全性,即当用户通过输入
x'之类的内容来运行自己的SQL代码时;删除表成员--

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

while($row = mysqli_fetch_array($dvalue))
{
  echo $row['value'];
  echo "<br>";
}
while($row=mysqli\u fetch\u数组($dvalue))
{
echo$row['value'];
回声“
”; }
不要再使用
mysql\u
函数。他们是。使用或代替

也就是说,您只是在运行查询,而没有检索任何结果。您必须调用一个函数,如从
mysqli\u query
将返回的资源ID获取数据


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

…之后您将拥有一个数组,因此请确保访问您需要的列作为数组键
$dvalue['value']
,否则,您将获得
数组
作为输出。好吧,迈克尔,您是对的,“数组”确实出现了。然而,当我像你说的那样输入
$dvalue['value']
时,我在第31oh行的/home/u923860750/public_html/cpanel/cpanel.php中得到了这个错误解析错误:语法错误,意外的'}',等等,那是因为我没有放一个;排队后。但是当我把分号放进去时,它再次显示
Array
你不能直接向用户回显数组。要显示数组的内容以供测试,请使用
var\u dump($dvalue)。否则,您必须回显数组的单个项,即,
echo$dvalue['binary']。请链接到官方PHP文档,而不是w3schools,后者被广泛认为质量非常低(充满SQL注入漏洞等),这很容易受到SQL注入的攻击。强烈建议从现在不推荐使用的
mysql_*()
API切换到更现代的API,如支持参数化查询的PDO。我计划很快这样做,但目前我只在个人事务中使用它,而且它在我的个人服务器上。除了我,任何人都无法访问它,也没有人知道它。