小问题,POST方式接收不到。GET 行。

hfxujing1 2016-09-06 08:37:15



...全文
304 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hfxujing1 2016-09-07
  • 打赏
  • 举报
回复
引用 12 楼 xuzuning 的回复:
$sql="insert into emp (name,age,level,sex) values($name,$age,$level,$sex)"; 如果 $name = 'xiaodian' 的话。带入就是 $sql="insert into emp (name,age,level,sex) values(xiaodian,$age,$level,$sex)"; 和你截图一样吗?
那把 $name 和$sex 加上单引号?也不对啊还是错的啊。
xuzuning 2016-09-07
  • 打赏
  • 举报
回复
$sql="insert into emp (name,age,level,sex) values($name,$age,$level,$sex)"; 如果 $name = 'xiaodian' 的话。带入就是 $sql="insert into emp (name,age,level,sex) values(xiaodian,$age,$level,$sex)"; 和你截图一样吗?
hfxujing1 2016-09-07
  • 打赏
  • 举报
回复
引用 10 楼 xuzuning 的回复:
mysqli_errno()
应改为
$this->conn->error

版主中文好,这个看看:

提交后:
这是错误提示信息:
执行DML失败Champ 'xiaodian' inconnu dans field list //我百度翻译,说什么xiaodian 这个字段是未知领域.
-------------------------

执行这个页面提示的错误:
<?php
header("Content-type:text/html;charset=utf-8");
//引入数据库工具类 这个工具类全文在上面已经贴出来,这里就不用了吧?
require_once 'sql.class.php';
//创建emp表服务类,供emplist.php调用
class empserice{
//----------------------计算总页面数的方法---------------------
function getpagecount($pagesize){ //$pagesize每页显示多少行记录


//需要查询的总行数
$sql="select count(id) from emp";
//创建数据库工具类对象
$sqlhelper=new sqlhelper();
//调用类方法
$res=$sqlhelper->dql1($sql);
//这样就可以计算pagecount
if($rows=$res->fetch_row()){
$pagecount=ceil($rows[0]/$pagesize);
}

//关闭连接
$sqlhelper->resfree();

return $pagecount;
}
//-----------调取表方法-------------------------------------
function getlist($pagenow,$pagesize){
$recordbegin=$pagenow*$pagesize-$pagesize;
$sql="select * from emp limit $recordbegin,$pagesize;";
$sqlhelper=new sqlhelper();
$arr=$sqlhelper->dql($sql);
return $arr;

}
//------------中间页循环-------------------------
function pagewhile($pagenow,$pagefor,$pagecount){
for($i=1;$i<$pagefor+1;$i++){
$page=$pagenow+$i;
if($page<=$pagecount){
echo "<a href='?pagenow=$page'>[$page] </a> ";

}
}
}
//-------------------数据指定查询-----------------
function query($name){

$sqlhelper=new sqlhelper();
$sql="select * from emp where name=$name";
$res=$sqlhelper->dql1($sql);


return $res;
}
//-------------------添加数据---------
function add($name,$age,$level,$sex){
$sqlhelper=new sqlhelper();
$sql="insert into emp (name,age,level,sex) values($name,$age,$level,$sex)";
$res=$sqlhelper->dql1($sql);
}
}
$text=new empserice();
$text->add("xiaodian",10,10,"girl");
?>
-------------------------------
这是我在CMD下面去执行的语句:

没错啊!
xuzuning 2016-09-07
  • 打赏
  • 举报
回复
mysqli_errno() 应改为 $this->conn->error
hfxujing1 2016-09-07
  • 打赏
  • 举报
回复
引用 8 楼 jordan102 的回复:
add 方法的类贴全了,不要贴图,贴文本代码。
错误信息也贴文本,说明一下报错行是哪行

版主好,我怕只贴文本,怕你们看起来麻烦。贴图有关键字变色 这样更一目了然。
我全部贴出来:
还是那个员工管理系统的事。

当我点击 添加 后跳转下面的表单:

这是表单HTM了代码:

<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
<form action='add.php' method='post'> 
<h1>请输入员工信息:</h1>
姓名:<input type='text' name='name'/> 
年龄:<input type='text' name='age'/> 
等级:<input type='text' name='level'/> 
性别:<input type='text' name='sex'/><br>
<input type='submit' value='提交'/>
<input type="reset" value="重新填写"/>
</form>
<?php

//接收错误信息
if(!empty($_GET["error"])){
echo "各项信息不能为空,请检查";
}
?>
</html>
---------------------------------------------------------------------------------------------
表单信息提交给add.php.
add.php代码:

<?php
//接收来自add1.php表单的数据
if(!empty($_POST['name']) && !empty($_POST['age']) && !empty($_POST['level']) && !empty($_POST['sex'])){
$name=$_POST['name'];
$age=$_POST['age'];
$level=$_POST['level'];
$sex=$_POST['sex'];
}else {
header('Location:add1.php?error=1');
}
require_once 'empserice.class.php';
$emp=new empserice();
$emp->add($name,$age,$level,$sex);
?>
----------------------------------------------------------------------------
add.php调用empserice.class.php中的类方法 add.

empserice.class.php代码:

<?php
//引入数据库工具类
require_once 'sql.class.php';
//创建emp表服务类,供emplist.php调用
class empserice{
//----------------------计算总页面数的方法---------------------
function getpagecount($pagesize){ //$pagesize每页显示多少行记录


//需要查询的总行数
$sql="select count(id) from emp";
//创建数据库工具类对象
$sqlhelper=new sqlhelper();
//调用类方法
$res=$sqlhelper->dql1($sql);
//这样就可以计算pagecount
if($rows=$res->fetch_row()){
$pagecount=ceil($rows[0]/$pagesize);
}

//关闭连接
$sqlhelper->resfree();

return $pagecount;
}
//-----------调取表方法-------------------------------------
function getlist($pagenow,$pagesize){
$recordbegin=$pagenow*$pagesize-$pagesize;
$sql="select * from emp limit $recordbegin,$pagesize;";
$sqlhelper=new sqlhelper();
$arr=$sqlhelper->dql($sql);
return $arr;

}
//------------中间页循环-------------------------
function pagewhile($pagenow,$pagefor,$pagecount){
for($i=1;$i<$pagefor+1;$i++){
$page=$pagenow+$i;
if($page<=$pagecount){
echo "<a href='?pagenow=$page'>[$page] </a> ";

}
}
}
//-------------------数据指定查询-----------------
function query($name){

$sqlhelper=new sqlhelper();
$sql="select * from emp where name=$name";
$res=$sqlhelper->dql1($sql);


return $res;
}
//-------------------添加数据---------
function add($name,$age,$level,$sex){
$sqlhelper=new sqlhelper();
$sql="insert into emp ('name','age','level','sex') values($name,$age,$level,$sex)";
$res=$sqlhelper->dql1($sql);
if($res){
echo "添加成功";
return 1;
}else{
echo "添加失败";
return 0;
}


}




}


?>
-------------------------------------------------------
上面的empserice.class.php调用 工具类。这个工具类是专门用于和数据库增删改查的。

工具类PHP sql.helper.php的代码:

<?php
//工具类
class sqlhelper{
public $conn;
public $host='localhost';
public $user='root';
public $pw='';
public $db='admin';

//构造函数
function __construct(){
$this->conn=new mysqli($this->host, $this->user, $this->pw, $this->db);
if(mysqli_connect_errno()){
die("can not connect".mysqli_connect_error());
}
}
//DQL语句执行方法
public function dql($sql){
$arr=array();
$res=$this->conn->query($sql) or die("执行DQL失败".mysqli_errno());
$i=0;
while ($rows=$res->fetch_assoc()){
$arr[$i++]=$rows;
}
$res->free_result();
return $arr;
}
//DML语句执行方法
public function dql1($sql){
$res=$this->conn->query($sql) or die("执行DML失败".mysqli_errno()); 错误在这,它说我没给参数?
return $res;

}
//关闭连接
public function resfree() {
$this->conn->close();
}


}
?>
-------------------------------------------------
这是错误提示:





一起混吧 2016-09-07
  • 打赏
  • 举报
回复
add 方法的类贴全了,不要贴图,贴文本代码。 错误信息也贴文本,说明一下报错行是哪行
hfxujing1 2016-09-07
  • 打赏
  • 举报
回复
引用 15 楼 xuzuning 的回复:
报错就给出错误信息
谢谢版主 ,成功了添加数据。
xuzuning 2016-09-07
  • 打赏
  • 举报
回复
报错就给出错误信息
xuzuning 2016-09-07
  • 打赏
  • 举报
回复
$sql="insert into emp (name,age,level,sex) values('$name','$age','$level','$sex')";
komyluo 2016-09-06
  • 打赏
  • 举报
回复
$$emp,多个美元符,楼主要细心一点
hfxujing1 2016-09-06
  • 打赏
  • 举报
回复
引用 1 楼 jordan102 的回复:
print_r($_POST); 有不有值呢
怀疑是你的IDE的问题,有浏览器测试有问题吗

版主我那参数写错了: method 写成了mehtod.
看看这个不知道又抽什么风,看了半天都不没明白老错:

这是表单:

这是表单连接的PHP页面:

上面的PHP调用下面的类方法:

这个是工具类全文:
<?php
//工具类
class sqlhelper{
public $conn;
public $host='localhost';
public $user='root';
public $pw='';
public $db='admin';

//构造函数
function __construct(){
$this->conn=new mysqli($this->host, $this->user, $this->pw, $this->db);
if(mysqli_connect_errno()){
die("can not connect".mysqli_connect_error());
}
}
//DQL语句执行方法
public function dql($sql){
$arr=array();
$res=$this->conn->query($sql) or die("执行DQL失败".mysqli_errno());
$i=0;
while ($rows=$res->fetch_assoc()){
$arr[$i++]=$rows;
}
$res->free_result();
return $arr;
}
//DML语句执行方法
public function dql1($sql){
$res=$this->conn->query($sql) or die("执行DML失败".mysqli_errno());
return $res;

}
//关闭连接
public function resfree() {
$this->conn->close();
}
}
?>


错误提示:


这是数表结构:




hfxujing1 2016-09-06
  • 打赏
  • 举报
回复
引用 3 楼 komyluo 的回复:
是method,不是mehtod
没注意
hfxujing1 2016-09-06
  • 打赏
  • 举报
回复
引用 2 楼 fdipzone 的回复:
phpstorm?
这个用POST是不行的,直接在浏览器测试看看。


zend studio 自带的
komyluo 2016-09-06
  • 打赏
  • 举报
回复
是method,不是mehtod
傲雪星枫 2016-09-06
  • 打赏
  • 举报
回复
phpstorm? 这个用POST是不行的,直接在浏览器测试看看。
一起混吧 2016-09-06
  • 打赏
  • 举报
回复
print_r($_POST); 有不有值呢 怀疑是你的IDE的问题,有浏览器测试有问题吗

21,886

社区成员

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

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