您的位置:首页 > 产品设计 > UI/UE

mysql_query返回false原因

2016-04-21 23:53 1291 查看
原文链接: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);
运行成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: