方法的类型不对
1、是因为这节课只实现了一个添加用户的功能,所以不需要识别act的值,所以act的值一定是addUser,所以不用switch也能成功;
2、switch和if-else都是实现逻辑判断用的,switch中不同的值对应不同的act,实现不同的操作,如果用if可以写if($add='addUser'){echo '添加用户';}else{echo '其他操作';}
3、php的{}中间可以填写变量,可以方便开发者知道,括号里面是一个变量,写不写对程序本身执行并不会产生影响;
好吧..我已经知道了 PASSWORD 的长度设置至少要32个 长度不够所以MD5 无法正确添加
你的 INSERT 后面少写 INTO
你贴出来你的代码,和错误报告出来呀,你这么笼统的问人家怎么帮你解答?提出的问题要具体!!!
判断用的,判断你操作是删除、更新还是添加
解决了,不好意思
<?php header('content-type:text/html;charset=utf-8'); error_reporting(E_ALL^E_NOTICE); $mysqli = new mysqli('localhost','root','199486','test'); if($mysqli->connect_errno){ die('connect error'.$mysqli->connect_error); } $mysqli->set_charset('utf8'); $username = $_POST['username']; $password = $_POST['password']; $age = $_POST['age']; $act = $_GET['act']; $id = $_GET['id']; switch ($act){ case 'addUser': $sql = "INSERT student(username,password,age)VALUES ('{$username}','{$password}','{$age}')"; $res=$mysqli->query($sql); if($res){ $insert_id = $mysqli->insert_id; echo "<script> alert('添加成功,网站的第{$insert_id}'); location.href='user_list.php'; </script>"; exit; }else{ echo "<script> alert('添加失败'); location.href='addUser.php'; </script>"; } break; case 'delUser': $sql = "DELETE FROM student WHERE id=".$id; $res = $mysqli->query($sql); if($res){ $mes = "删除成功"; }else{ $mes = "删除失败"; } $url = "user_list.php"; echo "<script> alert('{$mes}'); location.href='{$url}'; </script>"; break; } ?>
不明白你说的意思,给你看下我的
switch里面有一个对应方法,获取到这个userNAME的值时调用方法
placeholder和required是H5支持的
不加好像也行 不过必须要加单引号或者双引号,因为$username是一个字符串
数据库字段的问题,导致插不进数据。
小王子,你在吗?
$_POST用于接受来自method=“post”表单中的值,是PHP中预定义的变量;
可以先只打印一下 数据 比如 echo $username; 看看是否有数据,另外有可能是编码问题注意统一编码。可以在只有php的网页也添上
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
<script charset='utf-8' type='text/javascript' ></script>
<?php
//以前的内容
?>
</html>
我也是新手,提供一个参考 (。・∀・)ノ
因为外面已经有双引号了,而变量已经用{}括起来了,所以可以识别。
echo "<script type='text/javascript'>alert('添加成功,网站的第 {$insert_id} 位用户');</script>";
刚刚解决了,应为password应用了md5 需要修改数据库为32长度, 但是不知道为什么另一个数据库不会报错
表示请求地址
form表单中看看有没有定义name
我知道错误在哪里了 mysql的权限设置模式 window系统的.my.ini找到此关键字
第一种:数据库设计时,为可能没有数据的字段设置默认值。
第二种:设置SQL的模式,此有两种方法:
(1),配置my.ini,去掉:STRICT_TRANS_TABLES
my.ini配置代码
# Set the SQL mode to strict
# sql-mode="STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION"
sql-mode="NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION"
(2),运行SQL命令。注:此命令需要权限!
SQL代码
SET @@GLOBAL.sql_mode="NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION";
因为比较擅长用Phpmyadmin 所以直接运行了SQL的命令,问题解决。
然后把它修改成NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION 之后的都明白了。
- -明明就跳转了
你输出下SQL语句,直接在数据库里执行下,看看哪错了
^-^...
嗯 这个imooc网会来修复
^-^...