php输出
1直接输出:
$name ="kk";
echo "H," .$name ;//H,kk
echo 'H," . $name ;//H,kk
echo "H,$name"; //H,kk
2.echo输出多个变量
php
$name ="Maoshu";
echo "Hello,"$name;
3.EOF定界符(heredoc)和(nowdoc)
$name ="kk";
echo <<<EOF //
我是 $name 呀 //我是 kk 呀
EOF ; //
$name = "Maoshu";
echo <<<'EOF'
我是 $name 呀 // 我是 $name 呀
EOF;
4.模块化输出
$name=kk; echo "Hello,{$name}" //hellokk
$name=["name"=>"kk"];
echo "Hello,{$name[ 'name']}";//Hellokk
5 .printf0 和sprintf ()
printf是直接输出,不返回任何值
sprintf不输出,但有返回值
$name = "Maoshu";
$age-35;
printf("我是 %s,今年%s",$name,$age);
php条件判断
-
if 语句
-
- 在条件成立时执行代码
if (条件)
{
条件成立时要执行的代码;
} -
if...else 语句
-
在条件成立时执行一块代码,条件不成立时执行另一块代码
-
if...elseif....else 语句
-
- 在若干条件之一成立时执行一个代码块
-
<?php $t=date("H"); if ($t<"10") { echo "Have a good morning!"; } elseif ($t<"20") { echo "Have a good day!"; } else { echo "Have a good night!"; } ?>
if (条件)
{
if 条件成立时执行的代码;
}
elseif (条件)
{
elseif 条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
} -
switch 语句
-
- 在若干条件之一成立时执行一个代码块
-
<?php
$favcolor="red";
switch ($favcolor) $favcolor 可以是要被比较的表达式。
{
case "red": 可能的值,就执行相应的代码块。
echo "你喜欢的颜色是红色!";
break;
case "blue":
echo "你喜欢的颜色是蓝色!";
break;
case "green":
echo "你喜欢的颜色是绿色!";
break;
default:
echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
}
?>
for循环
for (初始值; 条件; 增量) // ($i=1,$j=0; $i<=5; $i++)
{ // 只适合纯数值的数组如【1,23,4】或【“你”,“我”,“他”】
要执行的代码;
}
foreach ($array as $key => $value)//($array as $value)
{ //可以循环取出key,value的值
要执行代码;echo "key 为 " . $key . ",对应的 value 为 ". $value . PHP_EOL;
}
PHP 函数
- 函数必须以function开头,名称应该提示出它的功能
- 函数名称以字母或下划线开头(不能以数字开头)
- <?php
function add($x,$y)
{
$total=$x+$y;
return $total;
}
echo "1 + 16 = " . add(1,16);
?> -
PHP 变量函数
变量函数是指在 PHP 中,将一个变量作为函数名来调用的函数。
变量函数可以让我们在运行时动态地决定调用哪个函数。
也可以用变量函数的语法来调用一个对象的方法。
<?php
class Foo
{
function Variable()
{
$name = 'Bar';
$this->$name(); // 调用 Bar() 方法
}
function Bar()
{
echo "This is Bar";
}
}
$foo = new Foo();
$funcname = "Variable";
$foo->$funcname(); // 调用 $foo->Variable()
?>
PHP 变量作用域
PHP 有四种不同的变量作用域:
函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,
函数内部声明的变量是局部变量,仅能在函数内部访问
- local
- global 要在一个函数中访问一个全局变量,需要使用 global 关键字。
- static 函数内的,函数调用一次,累计一次
- parameter
SQL防注入
预处理方法
查询
$sql ="SELECT * FROM user WHERE username = ? AND password =?"; // ?传参
$stmt =$conn->prepare($sq1); //prepare($sq1)执行数据库查询或操作做准备
//绑定
$stmt->bind_param("ss",$username, $password);//绑定,确保参数被正确地格式化和转义
参数 “ss” 表示后面的两个参数$username
和$password
都是字符串类型
//执行
$stmt->execute();
//获取结果
$result=$stmt->get result();
print_r('<pre>');
print r($result->fetch_a11());
//关闭
$stmt->close();
i - integer(整型)
d - double(双精度浮点型)
s - string(字符串)
b - BLOB(binary large object:二进制大对象
插入--预处理
$sq1 ="INSERT INTo user(username, password, phone) VALUES(?,?,?)";
$stmt =$conn->prepare($sql);
//绑定
$stmt->bind_param("sss",$username,$password,$phone);//执行
$stmt->execute();
//获取结果
if($stmt->affected rows >0){
echo“插入成功";
}else {
echo“插入失败";
//关闭
$stmt->close();
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 预处理 SQL 并绑定参数
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email)
VALUES (:firstname, :lastname, :email)");
$stmt->bindParam(':firstname', $firstname);
$stmt->bindParam(':lastname', $lastname);
$stmt->bindParam(':email', $email);
// 插入行
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();
// 插入其他行
$firstname = "Mary";
$lastname = "Moe";
$email = "mary@example.com";
$stmt->execute();
// 插入其他行
$firstname = "Julie";
$lastname = "Dooley";
$email = "julie@example.com";
$stmt->execute();
echo "新记录插入成功";
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
$conn = null;
?>
php练习1
前后端数据库实例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="layui-v2.9.21/css/layui.css">
</head>
<body>
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-md6 layui-col-md-offset3" >
<div class="layui-form" style="padding: 60px;">
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post">
<input type="text" name="name" placeholder="姓名" class="layui-input">
<hr class="ws-space-16">
<input type="email" name="email" placeholder="email" class="layui-input">
<hr class="ws-space-16">
<textarea name="text" placeholder="留言板" class="layui-textarea"></textarea>
<input type="submit" value="提交" class="layui-btn layui-btn-fluid">
</form>
</div>
</div>
</div>
</div>
<?php echo $_SERVER['PHP_SELF']?>
<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>
<?php
$conn=new mysqli("localhost","root","123456","sys",3306);
if ($_SERVER['REQUEST_METHOD']==="POST") {
$yz=true;
foreach(["name","email","text"] as $key =>$value){
if(empty($_POST[$value])){
$yz=false;
echo '<script>alert("'.$value.' 不能为空") </script>';
break;
}}
if ($yz) {
$sql="insert into lyban(name,email,text) values(?,?,?)";
$stmt=$conn->prepare($sql);
$stmt->bind_param("sss",$name,$email,$text);
$name=$_POST["name"];
$email=$_POST['email'];
$text=$_POST['text'];
if ($stmt->execute()) {
echo "数据插入成功";
} else {
echo "数据插入失败: ". $stmt->error;
}
$result=$conn->query("select * from lyban");
while ($row=$result->fetch_assoc()) {
echo "<br>".$row["temp_id"]."-------".$row["name"].
"------------".$row["text"]."----------".$row["update_time"];
}
$stmt->close();
$conn->close();
}
}
?>
</body>
</html>