PHP基础

PHP基础

这两天有个课程项目需要用PHP操作下数据库,学习完简单总结下PHP基本语法,以及操作数据库的代码,方便复用。

基本语法

一些最基本的语法,比如流程控制语句等。

常量

<?php
define('PI',3.1415926);
echo "The value of PI is " . PI;  # user dot to cancat
?>

If语句

<?php
$t = data("H");
if ($t < "10") {
    echo "Have a good moring!";
} elseif ($t < "20") {
    echo "Have a good day!";
} else {
    echo "Have a good night!";
}
?>

While 循环

<?php
$x = 1;
while($x <= 5) {
    echo "Number is : $x <br>";
    $x++;
}
// do while
$y = 1;
do {
    echo "Number is : $y <br>";
    $y++;
} while ($y <= 5); // execute at least once
?>

For循环

<?php
// init counter, test counter, increment counter
for($x=0; $x<= 10; $x++) {
    echo "The number is : $x <br>";
}
// foreach for arrays, loop key/value pair
$colors = array("red", "green", "blue", "yellow");
foreach($colors as $value) {
    echo "$value <br>";
}
?>

Function

<?php
function addNumbers($num1,$num2) {
    return $num1 + $num2;
}
echo "3 + 4 = " . addNumbers(3,4);
?>

操作数据库

PHP一个重要的用途就是操作数据库喽,W3schools有教程可以参考。

连接

基本的连接,查询,commit,rollback等语句。

<?php
// connect and check
$conn = mysqli_connect("127.0.0.1","user","passwd","database");
if (mysqli_connect_errno()){ //return last connection error code 
    echo "Failed to connect: " . mysqli_connect_error(); // return connection error desc
}

// query and commit
mysqli_autocommit($conn,FALSE); // turn off auto commit
mysqli_query($conn,"INSERT INTO Persons (Name, Age) VALUES ('Peter',35)"); // execute query
mysqli_commit($conn); // commit change
// mysqli_rollback($conn); rollback
mysqli_close($conn); // close connection
?>

Query

<?php
/// Perform queries against the database:
mysqli_query($con,"SELECT * FROM Persons");
?>

Fetch Row One by One

Fetch array(numeric or associative)

<?php
$sql = "SELECT Name, Age FROM Persons";
$results = mysqli_query($conn,$sql);
// numeric array
$row = mysqli_fetch_array($results,MYSQLI_NUM);
printf ("%s (%s)\n",$row[0],$row[1]);
// associative array
$row = mysqli_fetch_array($results,MYSQL_ASSOC);
printf ("%s (%s)\n",$row["Name"],$row["Age"]);
// free results set
mysqli_free_result($results); mysqli_close($conn);
?>

Associative

<?php
$row = mysqli_fetch_assoc($results);
printf ("%s (%s)\n",$row["Name"],$row["Age"]);
// while loop through
while($row = mysqli_fetch_assoc($results)) {
    echo $row['Name'] . ':' . $row['Age'];
}
mysqli_free_result($result); mysqli_close($conn);
?>

Fetch All Rows

<?php
// mysqli_fetch_all
// Fetch all rows and return the result-set as an array
$rows = mysqli_fetch_all($results,MYSQL_ASSOC); // or MYSQL_NUM
foreach($rows as $row) {
    echo $row['Name'] . ':' . $row['Age'];
}
?>

Row Count

<?php
$rowcount = mysqli_num_rows($result); // row count
?>

嵌入HTML中

Connect Database

<?php
$conn = mysqli_connect($db_server, $db_user, $db_passwd, $db_name);
$sql = "SELECT name FROM artist ORDER BY listeners DESC";
$rst = mysqli_query($conn, $sql);
?>

嵌入代码

<?= ?>把PHP变量值输出到HTML中。

<div class="list-group">
  <?php foreach(mysqli_fetch_all($rst,MYSQL_ASSOC) as $row): ?>
    <a href="#"> <?= $row['name']? > </a> // use <?= ?> to retrive value from var
  <?php endforeach ?>
</div>

Pass Param to SQL Statement

<?php
$sql = "SELECT name, url FROM artist WHERE name=\"{$_GET['artist']}\""; // get string
$sql = "SELECT name, url FROM artist WHERE id={$_GET['id']}"; // get number
?>

Link to Page with Param

<?php
// use ?var=data get method
<a href='page.php?var=data'>Data link</a>;
// retrive data 
echo $_GET['var'];
?>

Form Handling

从提交的表单中提取信息。

<?php echo $_POST["name"]; ?>
<?php echo $_GET["email"]; ?>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ChaMd5安全团队

老司机带你过常规WAF

0x00 前言 最近看了不少关于WAF绕过的文章,想把理论深化到实践当中去,于是就有了您正在看的这篇文章,这篇文章分为两大部分,分别写的是SQL注入相关的WAF...

45711
来自专栏程序你好

使用Java Streams(流)查询数据库

在本文中,您将了解如何编写纯Java应用程序,这些应用程序能够使用来自现有数据库的数据,而无需编写一行SQL(或类似的语言,如HQL),也无需花费大量时间将所有...

542
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–通过直接资本化进行资产购置(163)-6 MIGO采购收货

4.10 从卡车卸下物料 码头装卸员工卸下进货卡车的货物,并确认部件到达正确的码头目的地。在签字装货之前,此活动也会检查集装箱是否有任何损坏。 4.11 MI...

34612
来自专栏用户2442861的专栏

python lmdb使用

学习LMDB的时候不禁想到知乎上的提问“有哪些名人长期生活在其他名人的光环下”,说实话感觉查它的人基本都是为了用Caffe……

812
来自专栏情情说

Netty事件监听和处理(下)

上一篇 介绍了事件监听、责任链模型、socket接口和IO模型、线程模型等基本概念,以及Netty的整体结构,这篇就来说下Netty三大核心模块之一:事件监听和...

3375
来自专栏SDNLAB

Ryu:如何在LLDP中添加自定义LLDPDU

在许多实验场景中,都需要使用链路发现协议(LLDP)来发现链路,从而构建网络拓扑。然而LLDP协议不仅仅可以用来发现拓扑,也可以用于时延检测等业务。LLDP通过...

3596
来自专栏熊二哥

MongoDB快速入门

    从我第一次听到Nosql这个概念到如今已经走过4个年头了,但仍然没有具体的去做过相应的实践。最近获得一段学习休息时间,购买了Nosql技术实践一书,正在...

18710
来自专栏菩提树下的杨过

Silverlight中的帧

Silverlight是基于时间线的,不象Flash是基于帧的,所以在Silverlight中,很少看到有文档专门介绍SL中的帧。 但是我们从动画原理知道,动画...

1886
来自专栏SAP最佳业务实践

SAP最佳业务实践:ETO–项目装配(240)-15材料采购入库

ME29N下达采购订单 image.png 现在已经采购长提前期组件,您在此步骤中下达采购订单以便可以过帐该组件的收货。 角色采购经理 后勤 ® 物料管理 ®...

3428
来自专栏信安之路

SQL 注入类型详解

笔者最初学习 SQL 注入时,大家对于 SQL 注入类型的归类让我头脑一片混乱,后来笔者发现其实大家都是根据 sqlmap 上给出的“类型”来划分的。所以,今天...

890

扫码关注云+社区