重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
php将密码存入数据库,可以分内常见的4种方式:
创新互联公司主营东阳网站建设的网络公司,主营网站建设方案,成都APP应用开发,东阳h5成都微信小程序搭建,东阳网站营销推广欢迎东阳等地区企业咨询
1、直接md5加密存到到数据库
2、md5两次存到数据库
3、对需要加密的字符串和一个常量 进行混淆加密
4、生成一个随机的变量存到数据库中,然后对需要加密的字符串和这个随机变量加密
1
2
3
4
5
6
7
8
9
10
11
12
?php
$str="admin"; //需要加密的字符串
$str2="php"; //增加一个常量混淆
$pass1=md5($str);
$pass2=md5(md5($str));
$pass3=md5($str.$str2);
echo $pass1."".$pass2."".$pass3;
?
输出:
第四种
1
2
3
4
$str="admin"; //需要加密的字符串
$encrypt=$row['encrypt']; // 生成的 随机加密字符串 存到数据库中
$pass4=md5($str.$encrypt);
// 8db2ec7e9636f124e56f7eb4d7b7cc7e
mysql_query函数查询的方式是查询出全部结果后缓存到内存中,这样就会出现超内存的现象,使用另外一个函数mysql_unbuffered_query可以解决这个问题,mysql_unbuffered_query不会缓存结果集,而是查询出来数据后立马对结果集进行操作,也就是便查询边返回,这样就不会出现超出内存的现象,但是使用mysql_unbuffered_query的是时候不能使用 mysql_num_rows() 和 mysql_data_seek()。并且向 MySQL 发送一条新的 SQL 查询之前,必须提取掉所有未缓存的 SQL 查询所产生的结果行。例如:
使用缓存结果集的代码:
function selecttest()
{
try {
$pdo = new PDO("mysql:host=localhost;dbname=test", 'root', '123456');
// 不使用缓存结果集方式
// $pdo-setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
$sth = $pdo-prepare('select * from test');
$sth-execute();
echo '最初占用内存大小:' . memory_get_usage() . "\n";
$i = 0;
while ($result = $sth-fetch(PDO::FETCH_ASSOC)) {
$i += 1;
if ($i 10) {
break;
}
sleep(1);
print_r($result);
echo '占用内存大小:' . memory_get_usage() . "\n";
}
} catch (Exception $e) {
echo $e-getMessage();
}
}
执行时将会报超出内存的错误:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 204800000 bytes) in E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php on line 56
Call Stack:
0.0005 135392 1. {main}() E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php:0
0.0005 135568 2. test-selecttest() E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php:85
0.0050 142528 3. PDOStatement-execute() E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php:56
将上面代码中的$pdo-setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);一行的注释去掉后将不在缓存结果集,这时运行该函数的结果如下:
最初占用内存大小:144808
Array
(
[id] = 1
[a] = v
[b] = w
[c] = i
)
占用内存大小:145544
Array
(
[id] = 2
[a] = b
[b] = l
[c] = q
)
占用内存大小:145544
Array
(
[id] = 3
[a] = m
[b] = p
[c] = h
)
占用内存大小:145536
Array
(
[id] = 4
[a] = j
[b] = i
[c] = b
)
占用内存大小:145536
可以看到,这时返回一条数据内存占用非常的小,也就700多字节,这样就不会出现超出内存的错误了。
?php
$title = $_POST['title'];
$name = $_POST['author'];
$message = $_POST['my_message'];
$dbhost = '127.0.0.1';
$dbuser = 'root'; //我的用户名
$dbpass = ''; //我的密码
$dbname = 'exer'; //我的mysql库名
$connect = mysql_connect($dbhost,$dbuser,$dbpass,$dbname);
mysql_query("set names 'utf8" );
mysql_query("INSERT INTO message VALUES (null,'".$title."','".$name."','".$message."',null)")or die("query error");
echo "留言成功";
echo "script type='text/javascript' alert('留言成功')";
echo "window.location='allmessage.php';/script";
?
这是正确的 ,你的"" '' 什么的很乱 ,你自己试着调调