mysql_query返回false原因

来源:互联网 发布:mac 任务管理器快捷键 编辑:程序博客网 时间:2024/05/16 09:44
原文链接:http://zhidao.baidu.com/link?url=xTos2NFAJbGn88GOVWnlLP4U9UelhE7DQJ3POYIaa9yBOyRTwjFnnIrGICR6hxo7DvJm0nMhR3ygml2Bv4i0LK
php mysql_query语句里为什么引用变量要加单引号,为什么有时直接用变量名也可以运行通过?$result1=mysql_query("SELECT * FROM userinformation WHERE Accountname=$a");$result1=mysql_query("SELECT * FROM userinformation WHERE Accountname=’$a‘");



确切的说,那是sql语句,与是不是php没有直接绝对关系(sql语句的一门单独的语言,用于对数据库的一些操作,Acc、sql server、mysql等数据库的sql语句基本都一样,只是每种数据库的sql语句,有少许差别)
也就是sql语句的语法
sql语句中,字段的值和字段类型要相互对应
比如:数据表中有一个字段A,他的类型是(int、bigint等)数字类型
那么: A = '12'这样写是错误的,因为数字类型字段,不能插入或者赋值字符串类型的值
而如果A字段是文本类型等字段,则文本数字都可以插入
语法中,加引号,就表示所提供的值就字符串文本类型,不加则表示是数字类型

笔者解读:

如果
数据库字段是varchar、text这些字段:

如果$a是文本类型,则$a必须加上单引号。

如果$a是数字类型,则$a不加单引号也能通过。

比如以下语句是错误的,$user都要加上单引号。

$user='qwe';

$resultset=mysql_query("select password from users where username=$user");

或者

$user=$_GET["username"];//传递过来的值是文本类型

$resultset=mysql_query("select password from users where username=$user");

以下语句则是对的。

$user=123;

$resultset=mysql_query("select password from users where username=$user");


我在数据库中创建的字段类型如下:


编写代码

 $resultset=mysql_query("select password from users where username=$user");   $db_password=mysql_fetch_array($resultset);

出现如下错误


在了$user加上单引号后

 $resultset=mysql_query("select password from users where username='$user'");   $db_password=mysql_fetch_array($resultset);
运行成功。

0 0
原创粉丝点击