php7 mysql5.7 表单处理问题

yqy1234hf 2017-12-20 09:27:37
HTML5
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title></title>
<style type="text/css">
</style>
</head>
<body>
<form method="post" action="Log_in.php">

<table style="height:150%; width:100%;" border="0">
<tr><td align="center" valign="middle">帐号:<input type="text" name="id"></td></tr>
<!-- <tr><td align="center" valign="middle">密码:<input type="password" name="password"></td></tr> -->
<tr><td align="center" valign="middle"><input type="submit" name="submit" value="登录"></td></tr>
</table>
</form>
</body>
</html>
PHP
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"
</head>
<body>
<?php
$id=$_POST["id"];
// $password=$_POST["password"];

$mysql = mysqli_connect("localhost","root","********f","pies");
if (!$mysql){die("数据库连接失败". mysql_error());}
$account=mysqli_query($mysql,"SELECT * FROM `id_resume` WHERE Cell_phone_number=`$id` ");
if(!$account){die("帐号或密码错误");}
die("欢迎你回来!");
mysql_close($mysql);
?>
</body>
</html>

$id=$_POST["id"]; 这里接收一个表单

$account=mysqli_query($mysql,"SELECT * FROM `id_resume` WHERE Cell_phone_number=$id ");这里是查询mysql中变量表单传上来的数据变量$id

假设表单传上来的值为 ABCD 且mysql中确实有这个值
我在执行过程中发现直接用变量$id查询结果总是失败 但是如果我把查询函数的Cell_phone_number=$id 改为Cell_phone_number="ABCD"执行就能成功,求前辈解释下是为什么或者告诉我看下要去那里找资料 我在提问是已经问过度娘了 谢谢!
...全文
265 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yqy1234hf 2017-12-21
  • 打赏
  • 举报
回复
我找到问题了 但同时我也产生了一个新的问题 我先说正确的写法是`变量名` 我产生的新问题:我在修改php中的代码后没有刷新前台HTML5网页导致我查资料时已经找到过答案却因为没有刷新前台网页导致我一直不能正常放回这是为什么呢? PHP文件里的数据我是修改后保存过的 HTML5文件我一直没有修改过所以导致我潜意识里已经没有刷新前台页面 刚刚我重新刷新了一下前台页面后就能正常返回了。
594572148 2017-12-21
  • 打赏
  • 举报
回复
引用 13 楼 moxioamo 的回复:
[quote=引用 12 楼 moxioamo 的回复:] [quote=引用 10 楼 yqy1234hf 的回复:] [quote=引用 8 楼 moxioamo 的回复:] SELECT * FROM `id_resume` WHERE Cell_phone_number=“‘’”.$id."'"这样
你的方法是 双冒号单冒号双冒号点号 变量名 点号双冒号单冒号双冒号 这种写法吗? 如果是我带进去了语法就报错。[/quote] 都用英文的试试,我上面有一个好像是中文的引号[/quote] 简单的来说就是把$id里面的变量用引号引起来,具体拼接sql你自己拼[/quote] 楼上直接单引号$id不能解析单引号里面的变量的,单引号和双引号的区别你应该知道吧,如果直接用双引号,会少一对引号,因为是字符串类型,不是整形
594572148 2017-12-21
  • 打赏
  • 举报
回复
引用 12 楼 moxioamo 的回复:
[quote=引用 10 楼 yqy1234hf 的回复:] [quote=引用 8 楼 moxioamo 的回复:] SELECT * FROM `id_resume` WHERE Cell_phone_number=“‘’”.$id."'"这样
你的方法是 双冒号单冒号双冒号点号 变量名 点号双冒号单冒号双冒号 这种写法吗? 如果是我带进去了语法就报错。[/quote] 都用英文的试试,我上面有一个好像是中文的引号[/quote] 简单的来说就是把$id里面的变量用引号引起来,具体拼接sql你自己拼
xuzuning 2017-12-21
  • 打赏
  • 举报
回复
既然用 Cell_phone_number="ABCD" 可以得到结果 就表示 Cell_phone_number 是字符类型 那么他的值必须用引号括起。即便是数值类型,其值也应用引号括起,一方面为了格式的统一,一方面是防止恶意攻击 因此,建议写作
"SELECT * FROM `id_resume` WHERE Cell_phone_number=‘$id’“
594572148 2017-12-21
  • 打赏
  • 举报
回复
引用 10 楼 yqy1234hf 的回复:
[quote=引用 8 楼 moxioamo 的回复:] SELECT * FROM `id_resume` WHERE Cell_phone_number=“‘’”.$id."'"这样
你的方法是 双冒号单冒号双冒号点号 变量名 点号双冒号单冒号双冒号 这种写法吗? 如果是我带进去了语法就报错。[/quote] 都用英文的试试,我上面有一个好像是中文的引号
yqy1234hf 2017-12-21
  • 打赏
  • 举报
回复
引用 8 楼 moxioamo 的回复:
SELECT * FROM `id_resume` WHERE Cell_phone_number=“‘’”.$id."'"这样
你的方法是 双冒号单冒号双冒号点号 变量名 点号双冒号单冒号双冒号 这种写法吗? 如果是我带进去了语法就报错。
yqy1234hf 2017-12-21
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
Cell_phone_number=$id Cell_phone_number="ABCD" 对比这两个表达式,难道你就看不到差异?
首先谢谢前辈能来看我的问题,谢谢 $id是变量用于接收表单中传上来的数据(表单的类型type="text") "ABCD"是一个字符串在C里属于魔数。 我补充下我数据库里的设置:我数据库里Cell_phone_number的类型为varchar长度为13。
594572148 2017-12-21
  • 打赏
  • 举报
回复
SELECT * FROM `id_resume` WHERE Cell_phone_number=“‘’”.$id."'"这样
yqy1234hf 2017-12-21
  • 打赏
  • 举报
回复
引用 6 楼 TottyAndBaty 的回复:
SELECT * FROM `id_resume` WHERE Cell_phone_number=$id 当 $id是数字时,你这个没错,如果是非数字。那么就得加上单引号了,简单的修改办法就是 SELECT * FROM `id_resume` WHERE Cell_phone_number='$id'
你说的这个加``号的方法 我试过还是不行啊 我数据库里Cell_phone_number的类型为varchar长度为13.你把我代码放上去测试能成功吗?
tottyandbaty 2017-12-21
  • 打赏
  • 举报
回复
SELECT * FROM `id_resume` WHERE Cell_phone_number=$id 当 $id是数字时,你这个没错,如果是非数字。那么就得加上单引号了,简单的修改办法就是 SELECT * FROM `id_resume` WHERE Cell_phone_number='$id'
xuzuning 2017-12-21
  • 打赏
  • 举报
回复
Cell_phone_number=$id Cell_phone_number="ABCD" 对比这两个表达式,难道你就看不到差异?
yqy1234hf 2017-12-21
  • 打赏
  • 举报
回复
遗憾没人回答我的第二个问题 谢谢 楼上的所有人 结贴!
yqy1234hf 2017-12-20
  • 打赏
  • 举报
回复
引用 2 楼 qq_40241250 的回复:
打印$id看看 是否和ABCD一样 从而找问题
表单传上来的值都是能正常打印的 就是一放到sql语句中就不行
yqy1234hf 2017-12-20
  • 打赏
  • 举报
回复
表单传上来的值都是能正常打印的 就是一放到sql语句中就不行
qq_40241250 2017-12-20
  • 打赏
  • 举报
回复
打印$id看看 是否和ABCD一样 从而找问题
yqy1234hf 2017-12-20
  • 打赏
  • 举报
回复
此题无人能解?求版主指点我下吧!看了好多方法还是不能正常查询

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧