重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
?php
创新互联公司主营五峰网站建设的网络公司,主营网站建设方案,成都app软件开发,五峰h5微信平台小程序开发搭建,五峰网站营销推广欢迎五峰等地区企业咨询
$conn
=
mysql_connect('localhost','root','')
or
die('连接数据库失败,请检查您的数据库配置');
?
mysql_connect第二个参数是用户名,第三个参数
默认情况下,用上面测试下,如果不行就看下面是密码
?php
$conn
=
mysql_connect('localhost','用户名','密码')
or
die('连接数据库失败,请检查您的数据库配置');
?
参考下面代码及代码中的注释即可:
PHP代码:
conn.php是连接MySQL数据库的。代码如下:
?php
$dbhost = "localhost:3306";
$dbuser = "root"; //我的用户名
$dbpass = ""; //我的密码
$dbname = "testlogin"; //我的mysql库名
$cn = mysql_connect($dbhost,$dbuser,$dbpass) or die("connect error");
@mysql_select_db($dbname)or die("db error");
mysql_query("set names 'UTF-8'");
?
login.php代码:
?php
include ("conn.php");//连接数据库
$username=str_replace(" ","",$_POST['name']);//接收客户端发来的username;
$sql="select * from users where name='$username'";
$query=mysql_query($sql);
$rs = mysql_fetch_array($query);
if(is_array($rs)){
if($_POST['pwd']==$rs['password']){
echo "login succeed";
}else{
echo "error";
}
}
?
class LoginHandler implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
//get username and password;
userName = user_name.getText().toString().trim();
password = pass_word.getText().toString().trim();
//连接到服务器的地址,我监听的是8080端口
String connectURL="网站地址/text0/com.light.text/login.php/";
//填入用户名密码和连接地址
boolean isLoginSucceed = gotoLogin(userName, password,connectURL);
//判断返回值是否为true,若是的话就跳到主页。
if(isLoginSucceed){
Intent intent = new Intent();
intent.setClass(getApplicationContext(), HomeActivity.class);
startActivity(intent);
proDialog.dismiss();
}else{
proDialog.dismiss();
// Toast.makeText(ClientActivity.this, "登入错误", Toast.LENGTH_LONG).show();
System.out.println("登入错误");
}
}
}
//登入的方法,传入用户 密码 和连接地址
private boolean gotoLogin(String userName, String password,String connectUrl) {
String result = null; //用来取得返回的String;
boolean isLoginSucceed = false;
//test
System.out.println("username:"+userName);
System.out.println("password:"+password);
//发送post请求
HttpPost httpRequest = new HttpPost(connectUrl);
//Post运作传送变数必须用NameValuePair[]阵列储存
List params = new ArrayList();
params.add(new BasicNameValuePair("name",userName));
params.add(new BasicNameValuePair("pwd",password));
try{
//发出HTTP请求
httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
//取得HTTP response
HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);
//若状态码为200则请求成功,取到返回数据
if(httpResponse.getStatusLine().getStatusCode()==200){
//取出字符串
result=EntityUtils.toString(httpResponse.getEntity());
ystem.out.println("result= "+result);
}
}catch(Exception e){
e.printStackTrace();
}
//判断返回的数据是否为php中成功登入是输出的
if(result.equals("login succeed")){
isLoginSucceed = true;
}
return isLoginSucceed;
}
比如有个user的表,且表里有数据。
$user=M('User');
$list=$user-find();
dump($list);
若有数据,则表示连接成功。土办法。
数据库有很多种类:mysql,oracle,mssql,db2等等。PHP操作数据库的时候,要保证该类型数据库的扩展已开启。这里连接的数据库以mysql为例:
?php
//数据库服务器地址
$host="localhost";
//连接数据库用户名
$uname="root";
//连接数据库密码
$upass="";
//连接数据库
$conn=mysql_connect($host, $uname,$upass);
//判断连接
if(!$conn){
die("连接数据库失败!").mysql_errno();
}
//连接成功,其他操作省略
?
form action="" method="post"
select name="host"
option value="localhost" selectedlocalhost/option
option value="127.0.0.1"127.0.0.1/option
/select
brbr
user:input type="text" name="user" value=""brbr
pwd :input type="passWord" name="pwd" value=""brbr
input type="submit" value="connent"
input type="reset" value="reset"
/form
?php
error_reporting(~E_ALL);
$host = $_POST['host'];
$user = $_POST['user'];
$pwd = $_POST['pwd'];
if(isset($_POST['host']) isset($_POST['user']) isset($_POST['pwd'])){
if(strlen($host)1 or strlen($user)1 or strlen($pwd)1){
echo "请完善相关数据库链接信息。";
exit(0);
}
$conn = mysql_connect($host, $user, $pwd) or die("Error-数据库连接失败!");
if($conn){
echo "OK—数据库连接成功!";
}
}
?
1、检查环境正常
使用mysql -u root -p 可以进入MySQL操作界面
直接使用/usr/local/php5/bin/php /web/test.php执行可以连上数据库
2、打开hosts加入
复制代码代码如下:127.0.0.1 qttc
使用qttc当主机连接也正常,唯独就不认localhost。
3、localhost连接方式不同导致
为了了解PHP连接数据库时,主机填写localhost与其它的区别阅读了大量资料,最后得知:
当主机填写为localhost时mysql会采用 unix domain socket连接
当主机填写为127.0.0.1时mysql会采用tcp方式连接
这是linux套接字网络的特性,win平台不会有这个问题
4、解决方法
在my.cnf的[mysql]区段里添加
复制代码代码如下:
protocol=tcp
保存重启MySQL,问题解决!