后端开发|php教程
关于mysql_query返回值的问题
后端开发-php教程
错误代码
源码完整破解,vscode设置注释颜色,Ubuntu的rm,安装双tomcat,sqlite3如何瘦身,爬虫被派出所短信拦截,php url传递参数,吉林seo推广公司,有网站源码怎么建站,网页日历插件,音乐网页设计模板html代码lzw
<?php/** * Created by PhpStorm. * User: Administrator * Date: /8/16 * Time: 15:37 */if(!isset($_POST[ ame])){ die(user name not define);}if(!isset($_POST[password])){ die(user name not define);}if(empty($_POST[ ame])){ die(user name is empty);}if(empty($_POST[password])){ die(user password is empty);}require_once connect_server.php;connectdb();$name=$_POST[ ame];$password=$_POST[password];$sql="select * from users WHERE name=$name AND password=$password";$result=mysql_query($sql);$new=mysql_fetch_assoc($result);if($new[ ame]==$name&&$new[password]==$password){ echo "alert(登陆成功);window.location=zhuye.php\";}else{ echo "alert(登陆失败);window.location=zhuye.html\";}
可运行代码
资产管理系统 c 源码,ubuntu网卡驱动软件,脚本之家 java爬虫,开发框架php,seo dns 劫持lzw
";?>
两段代码中的mysql_query的返回值一样,但是为什么一段函数在调用其返回值的时候出现警告如图
易语言钓鱼盗号源码下载,ubuntu终端光标移动,怎么去除家里爬虫,php焊接,seo 扩展程序lzw
回复讨论(解决方案)
"select * from users WHERE name=$name AND password=$password"
上面的代码是有问题的,name和password没有加引号,导致sql语法错误,最终没有返回资源类型,而返回了布尔值false
正确的代码应该是
"select * from users WHERE ame=$name AND password=$password"
$sql=”select * from users WHERE name=$name AND password=$password”;
改为:
$sql=”select * from users WHERE name=”.$name.”‘ AND password=”.$password.”‘”;
因为你$name,$password如果为空,会造成语法错误。
还是错的?把sql语句再改成这样试试,应该是$name和$password没有被当成字符串导致出错。。。
"select * from users WHERE ame=".$name." AND password=".$password
还是错的?把sql语句再改成这样试试,应该是$name和$password没有被当成字符串导致出错。。。
"select * from users WHERE ame=".$name." AND password=".$password
我又写错了。。。应该是这样
"select * from users WHERE name=\".$name." AND password=\".$password."\";
还是错的?把sql语句再改成这样试试,应该是$name和$password没有被当成字符串导致出错。。。
"select * from users WHERE ame=".$name." AND password=".$password
我又写错了。。。应该是这样
"select * from users WHERE name=\".$name." AND password=\".$password."\";
可否告知为什么
$sql=”select * from users WHERE name=$name AND password=$password”;
改为:
$sql=”select * from users WHERE name=”.$name.”‘ AND password=”.$password.”‘”;
因为你$name,$password如果为空,会造成语法错误。
可以告知为什么吗?
还是错的?把sql语句再改成这样试试,应该是$name和$password没有被当成字符串导致出错。。。
"select * from users WHERE ame=".$name." AND password=".$password
我又写错了。。。应该是这样
"select * from users WHERE name=\".$name." AND password=\".$password."\";
可否告知为什么
因为$name和$password在sql语句中应该是以字符串的形式出现的(也就是说得有单引号包起来$name和$password的值)
还是说,你想知道为什么要那么拼接单引号和双引号?
还是错的?把sql语句再改成这样试试,应该是$name和$password没有被当成字符串导致出错。。。
"select * from users WHERE ame=".$name." AND password=".$password
我又写错了。。。应该是这样
"select * from users WHERE name=\".$name." AND password=\".$password."\";
可否告知为什么
因为$name和$password在sql语句中应该是以字符串的形式出现的(也就是说得有单引号包起来$name和$password的值)
还是说,你想知道为什么要那么拼接单引号和双引号?
我想知道为什么拼接单引号和双引号还有为什么要用将变量放在..的中间,两个点的作用是什么
$sql=”select * from users WHERE name=$name AND password=$password”;
如果是数值型的$name和$password变量,可以在SQL语句中直接使用,如果是字符串类型的变量,需要加单引号
我把代码拆成三段,你应该能明白了。两个那个点是用来连接字符串的,意思是告诉PHP:点之后的变量是个字符串
"select * from users WHERE name=\"
" AND password=\"
"\"
就是说,每个单引号 / 双引号碰到第二个单引号 / 双引号时,那一段字符就结束了。这三段都是一个双引号里包单引号。。
我把代码拆成三段,你应该能明白了。两个那个点是用来连接字符串的,意思是告诉PHP:点之后的变量是个字符串
"select * from users WHERE name=\"
" AND password=\"
"\"
就是说,每个单引号 / 双引号碰到第二个单引号 / 双引号时,那一段字符就结束了。这三段都是一个双引号里包单引号。。
懂了~谢谢