php 里面的SQL语句中怎么规范使用单引号,双引号?
$sqlstr="updatetb_personsetp_title="'.$_POST[p_title].'",p_content="'.$_POST[p_conten...
$sqlstr = "update tb_person set p_title=" '.$_POST[p_title].' ",p_content=" '.$_POST[p_content].' ",p_time=now(),u_id=".$_POST[p_type]. :where id=".$_POST[id];为什么最后2个变量上没要单引号呢?
$sqlstr = "update tb_person set p_title=" '.$_POST[p_title].' ",p_content=" '.$_POST[p_content].' ",p_time=now(),u_id=".$_POST[p_type]. "where id=".$_POST[id]; 展开
$sqlstr = "update tb_person set p_title=" '.$_POST[p_title].' ",p_content=" '.$_POST[p_content].' ",p_time=now(),u_id=".$_POST[p_type]. "where id=".$_POST[id]; 展开
展开全部
这是因为后面两个id,都是整型的,不用加引号
你想想SQL语句就知道了。
where id=3
你想想SQL语句就知道了。
where id=3
追问
$sqlstr = "select id,u_name,u_depart,is_on from tb_users where u_user = ' ".$_POST[username]." ' and u_pwd =' " .$_POST[pwd]." ' ";
这句为什么不是
$sqlstr = "select id,u_name,u_depart,is_on from tb_users where u_user = ' .$_POST[username].' and u_pwd =' .$_POST[pwd]. ' ";
追答
"select id,u_name,u_depart,is_on from tb_users where u_user = '
这最后面少个了双引号,字符串都还没有结束,就用.拼接肯定出错的
这句 .' and u_pwd =' ,这时的单引号被用作字符串的起始了,里面的内容才是字符串内容
你认真想想就明白的
建议复杂一下php的字符串
展开全部
数据库字段类型是数字的都不要加单引号,也不能加单引号!
比如:int、bigint等类型字段
比如:int、bigint等类型字段
追问
不是数字要加单引号?
追答
是
其实道理就是:数字才能做直接比较,比如 3=3,而字符串是不能直接比较的,需要加单引号表示字符串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个其实是php字符串的连接问题。
更多追问追答
追问
'.$_POST[p_title].' '.$_POST[p_content].' 为什么这两个加单引号?因为id都是数字吗?
追答
其实可以这样给你解释:$sqlstr = "update tb_person set p_title=" '.$_POST[p_title].' ",p_content=" '.$_POST[p_content].' ",p_time=now(),u_id=".$_POST[p_type]. "where id=".$_POST[id];
这句话里边:$sqlstr = "update tb_person set p_title=" ' 这是一个字符串,等号后边的双引号对应的是update前边的双引号,等号后边的单引号对应的是$_POST[p_title]这个变量,“.”是连接符,连接符后边可定还需要另外一个单引号来把$_POST[p_title]这个变量引用起来,举个例子:如果$_POST[p_title]=adkjf,那么sql就是这样的:$sqlstr = "update tb_person set p_title='adkjf‘,后边的跟这个一样,其实就是“.”号将你误导了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询