php链接mysql必备条件:
创新互联公司长期为成百上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为电白企业提供专业的网站制作、成都网站制作,电白网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
已安装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 "数据库连接成功!";
}
?
能把问题描述清楚一点吗?
如果是PHP链接数据库的话,应该是这样的
$mysql_server_name="localhost"; //数据库服务器名称
$mysql_username="root"; // 连接数据库用户名
$mysql_password="??????"; // 连接数据库密码
$mysql_database="??????"; // 数据库的名字
// 连接到数据库
$conn=mysql_connect($mysql_server_name, $mysql_username,
$mysql_password);
// 从表中提取信息的sql语句
$strsql="SELECT * FROM `gbook`";
// 执行sql查询
$result=mysql_db_query($mysql_database, $strsql, $conn);
// 获取查询结果
$row=mysql_fetch_row($result);
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,问题解决!
//采用pdo链接数据库
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();
}
if($user=='user' $pwd=='pwd'){ echo '登陆成功'; }else{ echo '用户名或密码错误'; } ? ?php $username=$_POST[username];