php的php连接mysql数据库库连接不知道哪错了,求改

急急急!!php连接Mysql数据库时报错如下:是什么原因啊?高手帮忙解决下吧,先谢谢了!可以追加激励分的_百度知道
密码错误吧?
该用户与密码不能登录mysql,和php没有关系。是MySQL的问题。
不能使用中文!
其他类似问题
mysql数据库的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁JAVAEEME 的BLOG
用户名:JAVAEEME
文章数:35
访问量:50116
注册日期:
阅读量:8996
[匿名]123:
[匿名]今日难忘:
51CTO推荐博文
15789人学习
3183人学习
2997人学习
9.1.4 使用Insert语句实现用户注册
对于专门为数据库设计的语言来讲,SQL是一种数据库操作技术,可以对数据库进行添加、修改、删除等一系列操作。
当由记录表示的一个新实体出现时,通常就把一个新的数据记录添加到关系数据库中。实现数据的添加操作可使用Insert语句完成,具体的语法请读者参见本书11.6.1节。
数据添加主要应用到如下几个函数,下面分别进行介绍。
1.mysql_query()函数
mysql_query()函数用来根据连接标识符向指定数据库服务器的当前数据库发送查询。语法如下:
int mysql_query(string query ,int [link_identifier]);
其中,query是查询字符串;link_identifier是数据库连接标识符。
mysql_query()在执行成功时返回一个结果标识符,失败时返回FALSE。
2.mysql_fetch_array()函数
mysql_fetch_array()函数用来从结果集取得的行生成数组。语法如下:
array mysql_fetch_array(int result,int[result_type]);
其中,result_type参数是一个常量,可选项,可以接受以下值(默认值为MYSQL_BOTH):
MYSQL_ASSOC:只得到关联索引。
MYSQL_NUM:只得到数字索引。
MYSQL_BOTH:将得到一个同时包含关联和数字索引的数组。
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)'
height="19" src="http://book.csdn.net/BookFiles/503/img/image004.jpg" width="19" border="0" alt="" />注意:mysql_fetch_array()函数返回的字段名区分大小写。
mysql_fetch_array()函数先提取出查询结果的第一行的内容,这个函数的参数就是mysql_query()函数返回的整数标志。而mysql_fetch_array()执行成功后,记录集指针会自动下移,这样当再一次执行mysql_fetch_array()时,得到的就是下一行记录的内容了。
下面通过具体的范例来讲解Insert语句在PHP中的应用。
数据添加是Web程序或网站最基本的功能之一(基本功能为添加、修改、删除、查询等),任何一个Web程序或网站的后台管理页面都要提供数据添加的功能。向数据表中插入数据可以通过Insert语句实现。本范例通过Insert语句实现了用户注册功能,运行结果如图9.2所示。
本范例的设计思路如下。
(1)本范例在注册用户时,由于不能存在同样的用户名,因此需要首先对用户名进行判断。在&用户名&文本框中输入用户名称,单击&检测用户&超链接,通过window.open打开一个用户检测的用户对话框,对输入的用户进行检测,并对检测结果给出相应的提示。代码如下:
&script language=&javascript&&
&& function openwin(x){
&&&& if (x==&&){
&&&&&&& && alert(&请输入用户名!&); myform.UserName.focus();
&&&& window.open(&submit_checkuser.php?x=&+x,&newframe&,&width=300,height=150&);
&& &/script&
&a href=&#& onClick=&javascript:openwin(myform.UserName.value)&&[检测用户]&/a&
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)'
height="383" src="http://book.csdn.net/BookFiles/503/img/image007.jpg" width="457" border="0" alt="" />
图9.2 录入数据
(2)利用$_GET[x]将文本框的值传递到数据处理页(submit_checkuser.php),可检测用户名称是否存在,代码如下:
include &Conn/conn.php&;
$UserName=$_GET[x];
$sql=mysql_query(&select * from tb_user where Username = '$UserName'&);
$result=mysql_fetch_array($sql);
if ($result!=false){
&&&&& echo (&[&font color=red&&.$UserName.&&/font&]已被注册!&);
&&&&& echo (&恭喜您!用户名[&font color=green&&.$UserName.&&/font&]可以注册!&);
(3)当用户按要求填写用户信息后,单击【确定保存】按钮将数据提交到数据处理页(register_deal.php)进行数据处理。
(4)在数据处理页register_deal.php中利用include包含文件命令引用数据库配置文件,访问数据库。代码如下:
&? php include &Conn/Conn.php&; ?&
(5)将从表单中提取的数据存储到变量中,使用Insert语句将用户填写的数据作为新记录插入到数据表中,并弹出&用户注册成功&提示框。程序代码如下:
$UserName=$_POST[UserName];
$TrueName=$_POST[TrueName];
$PWD=$_POST[PWD1];
$ICO=$_POST[ICO];
$Sex=$_POST[Sex];
$birthday=$_POST[Birthday];
$Email=$_POST[Email];
$Tel=$_POST[Tel];
$homepage=$_POST[Homepage];
$OICQ=$_POST[OICQ];
$Address=$_POST[Address];
&&&&& $INS=mysql_query(&Insert Into tb_user (Username,Pwd,TrueName,ICO,Sex,birthday,Email,Tel, homepage,OICQ,Address) Values('$UserName','$PWD','$TrueName','$ICO','$Sex','$birthday','$Email',' $Tel', '$homepage','$OICQ','$Address')&);
&&&& $result1=mysql_fetch_array($INS);
&&&&& echo &&script& alert('用户注册成功!');&/script&&;
&&&&& echo &&script& window.location='index.php';&/script&&;
9.1.5 使用Update语句实现批量更新用户状态
批量数据更新在数据库中的应用是比较广泛的,而且通过批量数据更改可以达到省时省力、提高效率的目的。
批量更新数据主要应用到了Update语句和In子句。Update语句的语法请读者参见本书11.6.2节。下面介绍一下In子句的用法。
In子句用于确定给定的值是否与子查询或列表中的值相匹配。语法如下:
test_expression [ NOT ] IN
&&&&& subquery
&&&&& | expression [ ,...n ]
其中,参数test_expression代表所有有效的Microsoft& SQL Server&表达式;参数subquery包含某列结果集的子查询;参数expression [,...n]表示一个表达式列表,用来测试是否匹配。所有的表达式必须与test_expression具有相同的类型。
下面的范例主要应用Update语句实现批量更新用户状态。
一般在设计用户权限或是更改工资级别时都会用到批量更新,批量更新的好处是速度快、安全性高。在本范例中,利用批量更新更改用户状态。选择要操作的用户,单击【激活】或【冻结】按钮,即可将用户设为激活或冻结状态。程序运行结果如图9.3、图9.4所示。
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)'
height="178" src="http://book.csdn.net/BookFiles/503/img/image008.jpg" width="243" border="0" alt="" />&& 650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)'
height="178" src="http://book.csdn.net/BookFiles/503/img/image009.jpg" width="245" border="0" alt="" />
&&&&&&&&&&& 图9.3 选中欲更新的用户&&&&&&&&&&&&&&&&&&&&& 图9.4 批量更新用户状态
本范例的实现过程如下。
(1)利用include包含文件命令引用数据库配置文件,访问数据库。代码如下:
&?php include &conn/conn.php&; ?&
(2)利用Do&while循环语句输出用户信息,将每条记录前面加上复选框,并进行相关属性值设置。代码如下:
&form name=&form1& method=&post& action=&index.php& onSubmit=&Checker()&&
&table width=&349& border=&1& align=&center& cellspacing=&0& &
&&& &tr align=&center& bgcolor=&#efefef&&
&&&&& &td height=&36& colspan=&3&&用户列表
&&&&& &/td&
&&&&& $sql=mysql_query(&select * from tb_member&);
&&&&& $result=mysql_fetch_array($sql);
&&&&& do {
&&& &tr align=&center&&
&&&&& &td width=&108&&&input name=&id& type=&checkbox& id=&id& value=&&?php echo $result[M_ID];
&&&&& &td width=&131&&&?php echo $result[M_Name]; ?&&/td&
&&&&& &td width=&88&&&?php echo $result[Grade]; ?&&/td&
&&&&& }while($result=mysql_fetch_array($sql));
&tr align=&center&&
&&&&&&& &input type=&hidden& name=&items& value=&&?php echo $ ?&&&
&td colspan=&3&&&input type=&submit& name=&Submit& value=&激活& & 
&&& &input type=&reset& name=&Submit& value=&重置&&
&&& &input type=&submit& name=&Submit& value=&冻结&&
(3)PHP接收多个同名复选框信息,不像JSP那样可以自动转换成为数组,这给使用者带来了一定的不便。但是还是有解决办法的,即利用JavaScript脚本做一下预处理。当提交表单时,调用cheaker()函数,多个同名复选框在JavaScript脚本中还是以数组的形式存在的,所以在表单提交之前,可以利用JavaScript把复选框中的信息组合成一个字符串赋值给表单中的隐藏元素。代码如下:
&script language=&javascript&&
function Checker(){
form1.items.value = &&;&&&&&&&& //设置隐藏域的值为空
if ( !form1.id.length ) {&&&&&&&& //只有一个复选框,form1.item.length = undefined
&&&&& if ( form1.id.checked ){
&&&&& form1.items.value = form1.id.
&&&&& var temp=&&;
&&&&& for ( i = 0 ; i & form1.id. i++ ){
&&&&& &&& if ( form1.id(i).checked ){&&&&&&&&&&&&&& //复选框中有选中的框
&&&&& &&&&&&&&&&& temp=temp+form1.id(i).value+&,&;&&& //使用&,&分隔符将数组元素组合成一个字符串
&&&&& &&& }
&&&&& temp=temp.substring(0,temp.length-1);&&&& //去除字符串末尾多余的&,&
&&&&& form1.items.value =&&&&& //将变量赋值给隐藏域
(4)将隐藏域的值赋给变量item,这样就可以实现复选框信息的传递了。再使用Update语句和In子句对选中的用户进行批量更新。代码如下:
&&&&& $item = $POST[items];
&&&&& if( $item&&&&){
&&&&& &&& if ($_POST[Submit]==&激活&){
&&&&& &&& $sql=mysql_query(&update tb_member set Grade='激活' where M_ID in (&.$item.&)&);
&&&&& &&& $result=mysql_fetch_array($sql);
&&&&& &&& }
&&&&& else{
&&&&&&&&&&&&&&&&&&&&&&& $sql=mysql_query(&update tb_member set Grade='冻结' where M_ID in (&.$item.&)&);
&&&&& &&&&&&&&&&& $result=mysql_fetch_array($sql);
&&&&& &&& }
&&&&& else{
&&&&& echo &&div align='center' style='color:#FF0000; font-size:12px'&请选择一个用户&/div&&;
9.1.6 使用Delete语句实现批量删除用户信息
批量数据的删除在各大中小型网站及管理系统中应用最为广泛。批量删除数据是通过Delete语句实现的。
例如,批量删除图书信息表中图书名称包含&PHP&的数据信息,代码如下:
$sql=mysql_query(&Delete from tab_book where bookname like '%&.php.&%'&);
$result=mysql_fetch_array($sql);
下面的范例主要应用复选框实现数据的批量删除。
在对数据进行删除时,有很多种方法。本范例主要通过复选框实现数据的批量删除。运行本范例,选择要删除的数据前的复选框,单击【删除】按钮,此时所有被选中的数据将全部被删除。删除图书信息前及删除图书后的运行结果如图9.5、图9.6所示。
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)'
height="318" src="http://book.csdn.net/BookFiles/503/img/image010.jpg" width="453" border="0" alt="" />
图9.5 批量删除数据前
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)'
height="286" src="http://book.csdn.net/BookFiles/503/img/image011.jpg" width="465" border="0" alt="" />
图9.6 批量删除数据后
本范例主要应用Delete语句和In子句实现批量数据删除操作。Delete语句的语法请读者参见本书11.6.3节。
本范例的实现过程如下。
(1)利用包含文件命令include引用数据库配置文件,即可访问数据库。代码如下:
&?php include &Conn/conn.php&; ?&
(2)利用Do&While语句将数据表中的所有记录显示出来,并将每条记录前面加上复选框。添加Form表单及复选框,并进行相关属性值的设置。代码如下:
&form name=&form1& method=&post& action=&index.php& onSubmit=&Checker()&&
&table width=&770& border=&1& align=&center& cellpadding=&1& cellspacing=&1& bordercolor=&#73BA08& &
&&&&& &td height=&244& colspan=&7& background=&images/bg.jpg&&&&/td&
&&&&& $sql=mysql_query(&select * from tab_book&);
&&&&& $info=mysql_fetch_array($sql);
&&&&& do {
&&&&& &td width=&26&&&input name=&id& type=&checkbox& id=&id& value=&&?php echo $info[id]; ?&&& &/td&
&&&&& &td width=&161&&&?php echo $info[bookname]; ?&&/td&
&&&&& &td width=&72&&&?php echo $info[issuDate]; ?&&/td&
&&&&& && &td width=&29&&&?php echo $info[price]; ?&&/td&
&&&&& &td width=&170&&&?php echo $info[synopsis]; ?&&/td&
&&&&&&& &td width=&73&&&?php echo $info[Maker]; ?&&/td&
&&&&& &td width=&89&&&?php echo $info[pulisher]; ?&&/td&
&&&&& }while($info=mysql_fetch_array($sql));
&tr align=&center&&
&&&&&&& &input type=&hidden& name=&items& value=&&?php echo $ ?&&&
&td colspan=&7&&&input type=&submit& name=&Submit& value=&删除& & 
&&& &input type=&reset& name=&Submit& value=&重置&&
(3)当提交表单时,调用cheaker()函数,利用JavaScript脚本把复选框中的信息组合成一个字符串,赋值给表单中的隐藏元素。代码如下:
&script language=&javascript&&
function Checker(){
form1.items.value = &&;&&&&&&&& //设置隐藏域的值为空
if ( !form1.id.length ) {&&&&&&&& //只有一个复选框,form1.item.length = undefined
&&&&& if ( form1.id.checked ){
&&&&& form1.items.value = form1.id.
&&&&& var temp=&&;
&&&&& for ( i = 0 ; i & form1.id. i++ ){
&&&&& &&& if ( form1.id(i).checked ){&&&&&&&&&&&&&& //复选框中有选中的框
&&& &&&&&&&&&&&&&&& temp=temp+form1.id(i).value+&,&;&&& //将数组中的元素使用&,&分隔
&&& &&&&&&& }&&&&&
&&& temp=temp.substring(0,temp.length-1);&&&&&&& //去除字符串末尾多余的&,&
&&& form1.items.value =&&&&&&& //将变量赋值给隐藏域
(4)将隐藏域的值赋给变量item,这样就可以实现复选框信息的传递了。通过单击【删除】按钮,将复选框选择的任意一条或多条记录删除。代码如下:
&&& $item = $_POST[items];
&&& if( $item&&&&){
&&& &&&&&&& if ($_POST[Submit]==&删除&){
&&& &&&&&&&&&&&&&&& $sql=mysql_query(&Delete from tab_book where id in (&.$item.&)&);
&&& &&&&&&&&&&&&&&& $result=mysql_fetch_array($sql);
&&& &&&&&&& }
&&& &&&&&&& echo &&div align='center' style='color:#FF0000; font-size:12px'&请选择欲删除的图书项目&/div&&;
了这篇文章
类别:未分类┆阅读(0)┆评论(0)Navicat for mysql 远程连接 mySql数据库提示错误的解决办法
使用Navicat for mysql 客户端软件连接远程 mySql 的时候,连接过程中可能会提示 2003-Can’t connect to MySQL on ’223.210.102.21’(10061) 这样的错误,对于这种错误该如何取解决呢?
其实这个问题是由于不允许远程连接造成的。解决办法如下:
1:在服务端MySQL文件夹下找到my.ini文件。修改bind-address=127.0.0.1 为 bind-address=223.210.102.21 (在MySQL 5的my.ini中未发现此项)
2:重新启动MySQL服务即可。
另外在测试连接的过程中也会提示 “1045-Access denied for user root@IT(using password:NO)” 这种错误,出现这种错误的原因是没有给远程登录用户添加所有机器都能访问的权限,对应的解决办法如下:
添加相应的权限,添加权限命令如下:
grant all on *.* to 用户名@"%" identified by "密码";
做完以上两步操作,你的问题应该已经的得到解决了,如果还没有解决,欢迎在下面留言说明。您可能感兴趣的文章转载请注明出处:本文永久地址:文章来源:-わ千与千寻上一篇:下一篇:热门文章随机文章需要把php下的php5ts.dll&& libmysql.dll& php5/ext/php-gb2.dll&&&& php5/ext/php-mbstring.dll& php-mysql.dll 拷贝到c:/windows/32下面,就会消失了。网页设计教程与开发
提供各种常见网页效果
提供各种各样的设计教程
装扮QQ,让QQ变得更酷
设计参考,提高自升水平
学习服务器和操作系统
提供各种素材和工具
收藏学习资料
您现在的位置:&&>>&&>>&&>>&&>>&正文
解决php连新版本mysql数据库错误
在更新到 4.1.1x 版本的 MySQL 后,发现需要使用 MySQLi 扩展方能正常使用数据库,否则会出现 1251 - Client does not support authentication protocol consider upgrading MySQL client 的提示,这个很纳闷,我没有研究具体的问题,只是切换到 MySQLi 扩展,
其实在给 root 加上密码前还是可以使用 MySQL 扩展的,可是给 root 加上密码后就出现了上述客户端版本太低的提示。   目前已知解决方法:
先用root登录MYSQL服务器,执行
mysql&set password for user1@"localhost"=old_password('yourPassword');
  原因是因为你使用的mysql服务器版本中使用了新的密码验证机制,这需要客户端的版本要在4.0以上,原来的密码函数被改为old_password();,这样使用password()生成的密码在旧的版本上的客户端就不好使了,而PHP中的MYSQL客户端都是3.23的(当然,mysqli的扩展除外),问题就在这了。
转载请注明:破洛洛(谢谢合作)
上一篇文章: 下一篇文章:
网友评论:

我要回帖

更多关于 php mysql数据库 的文章

 

随机推荐