如何从mysql打印到网页?

时间:2013-10-23 00:04:40

标签: php mysql sql

我只是SQL的新手,所以请帮助我。

我有一个简单的网站,每个用户都有一个用户名和密码。如果密码是“Jonathan”,我想在帐户页面上打印出密码,如j******n

问题是,我使用SQL函数ENCODE()

编码密码

我可以使用DECODE()来获取SQL中的值,但接着是什么?如何在网页上 打印 (然后我会对其进行格式化)?我只知道如何使用mysqli_query()通过查询的while循环来运行查询。

SQL中的函数是否等同于PHP的echo,可以在网页上打印出一个值?或者PHP有一个可以从SQL打印出函数的函数吗?

告诉我,如果我不清楚。

感谢您的回答。

2 个答案:

答案 0 :(得分:1)

  

解决方案是使用别名。

> $query = "SELECT DECODE(foo,'key') AS somename FROM bar"; 
> $result =mysql_query($query); 
> echo mysql_result($result,'somename');
  

> $row = mysql_fetch_assoc($result); echo $row['somename'];
  

来自:http://forums.devshed.com/mysql-help-4/php-mysql-encode-decode-57952.html

答案 1 :(得分:0)

不要将MySQL的ENCODE()DECODE()用于密码。相反,使用PHP的password_hash()来哈希密码。你永远不想把它存储在纯文本中(甚至加密),总是哈希。

虽然您仍然使用纯文本(例如您password_hash()的位置),但请将其提示版本存储在数据库的新颜色中。

$password = $_POST['password']; 
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
$hint_password = substr($password, 0, 1) . str_repeat('*', strlen($password) -2) . substr($password, -1);

现在将$hint_password$hashed_password分开存储在数据库中。这可以确保:

  • 密码永远无法以原始格式访问
  • 您仍然可以看到提示密码