//采用pdo链接数据库
丰满ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
try{
$dsn
=
'mysql:host=127.0.0.1;dbname=citest';
$pdo
=
new
PDO($dsn,'root','qq');
$pdo-setAttribute(3,2);
}catch(PDOEXCEPTION
$e){
echo
$e-
getMessage
();
}
//通过预处理查询验证
try{
$sql
=
"SELECT
count(*)
FROM
users
WHERE
username=:username
AND
password=:password";
$stmt
=
$pdo-prepare($sql);
$data
=
$stmt-execute($_GET);
//接过来的post值,前提表单中的name值和数据库的的字段名称相同
if($data){
echo
'登陆成功';
}else{
echo
'登陆失败';
}
}catch(PDOEXCEPTION
$e){
echo
$e-getMessage();
}
php链接mysql必备条件:
已安装mysql数据库;
检查php环境是否已开启mysql扩展(一般情况下是开启的);
检查方法:a.使用phpinfo();函数,看有没有mysql项;b.打开php.ini文件,检查php_mysql.dll前分号是否已取掉。
php链接代码如下:
?php
//设置编码格式
header("Content-type:text/html;charset=utf-8");
//定义数据库主机地址
$host="localhost";
//定义mysql数据库登录用户名
$user="root";
//定义mysql数据库登录密码
$pwd="";
//链接数据库
$conn = mysql_connect($host,$user,$pwd);
//对连接进行判断
if(!$conn){
die("数据库连接失败!".mysql_errno());
}else{
echo "数据库连接成功!";
}
?
mysql_query($db);
这是要干什么啊?把这句去掉;
$sql="select *from user where name=$username and password=$pws;"
改成
$sql="select * from user where name='".$username."' and password='".$pws."'";
1.*号后边应该有空格;
2.最后的分号应该在引号外边;
3.查询语句中的字符串应该加引号;
试试看
另外提两点建议:
1 $db=mysql_select_db("B");
写成 $db=mysql_select_db("B",$link);
养成个好习惯,省得到用到多个数据库时容易乱;
2.$_SESSION["name"]="2";//先将值定义为假//
定义为假的时候直接 $_SESSION["name"]="" 就好了,要不多乱啊。
3. if($row==1)
{
$_SESSION["name"]="1";
}
else $_SESSION["name"]="2";
前边已经定义完 $_SESSION["name"]="2 了 后边这个 else 就没有必要写了啊。
你应该先定位是哪里错了啊,在每个数据库操作语句后边都加上, or die(mysql_error());
根据错误提示看看错误出在哪,看不懂的话把错误提示语句一起发上来,效率会更高 呵呵。
你应该先看看执行的是那条语句,然后看看执行这条语句的条件,这样往前推,你的错误也有可能在登录页面上,仔细找找多看几遍代码你一定能找到的。
?php
$conn=@mysql_connect("localhost","root","")or die("数据库链接失败");
mysql_select_db(wk,$conn);
mysql_query("set names utf8");
$name=$_POST["zhanghao"];
$pwd=$_REQUEST["mima"];
$sql="select * from zhuce where username = '$name' and password = '$pwd'";
echo $sql;
$result=mysql_query($sql,$conn);
$row=mysql_fetch_array($result);
if(!$row){
echo "scriptwindow.alert('用户不存在或者密码错误');/script";
}
else{
echo "scriptwindow.alert('$row[username],欢迎您');/script";
}
?
判断的不是很清楚,我也是新手,呵呵
建议楼主检查一下sql对不对,主要看你数据库有没有sql语句的字段或者表
还有,你的密码是经过md5处理的,所以,你看你在做注册用户的时候,密码是不是也经过了md5处理,没有的话,系统会判断2个密码不相等,尽管他们的值是相同的(MD5不懂的话去搜搜,大把大把的),我估计是你注册的时候密码没处理~,你把$password = MD5($_POST['password']);的MD5去掉试试
if($check_query){
$_SESSION['username'] = $username;
echo $username,' 欢迎你!进入 a href="my.php"用户中心/abr /';
exit;
} else {
exit('登录失败!点击此处 a href="javascript:history.back(-1);"返回/a 重试');
}
$_SESSION['username'] = $username 是把用户名的值赋给一个叫username的session(这属于会话,不懂去搜搜看)