index.php

<?php
if(get_magic_quotes_gpc())  //关闭php的魔术引号功能。
{
    $process = array(&$_GET,&$_POST,&$_COOKIE,&$_REQUEST);
    while(list($key,$val) = each($process))
    {
        foreach($val as $k => $v)
        {
            unset($process[$key][$k]);
            if(is_array($v))
            {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            }
            else
            {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}   //关闭php的魔术引号功能。

if (isset($_GET['addjoke']))
{
include 'form.html.php';
exit();	
}

//建立连接对象
try 
 {
 $pdo = new PDO('mysql:host=localhost;dbname=test','testuser','pass');
 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //setAttribute  PDO对象的方法,PDO::表示这些变量是我们所使用的PDO的一部分,不是PHP语言自身内建的变量。想要将控制错误模式的PDO属性(PDO::ATTR_ERRMODE)设置为抛出异常的模式(PDO::ERRMODE_EXCEPTION)。
 $pdo->exec('SET NAMES "utf8"'); //配置数据库连接的字符码。
 }
 catch (PDOException $e)
 {
     $error = '数据库连接失败!'.$e->getMessage();//从MySql服务器获取一条详细的错误信息
	 include 'error.html.php';
     exit();
     }

if (isset($_POST['joketext']))
{
	try
	{
$sql = 'INSERT INTO joke SET 
joketext = :joketext, 
jokedate = CURDATE()'; //CURDATE()返回当前日期为'YYYY-MM-DD“或YYYYMMDD格式的值
$s = $pdo->prepare($sql); //将查询发送给mydql服务器,要求他准备好运行该查询。返回一个PDOStarement的对象。
$s->bindValue(':joketext',$_POST['joketext']); //发送给他所却的值。
$s->execute(); //调用个PDOStarement的方法来告诉mysql服务器,使用我们提供的值来执行查询
}
catch (PDOException $e)
{
	$e->getMessage();
	include 'error.html.php';
	exit();
}
header('Location:.');//PHP header函数提供发送特殊服务器响应的方法,表示一次重定向,(.)为重新加载当前目录。
exit();
}

try
{
$sql = 'SELECT * FROM joke';
$jieguo = $pdo->query($sql); //query 返回一个PDOStarement的对象,该对象表示一个结果集。
}
catch(PDOException $e)
{
$error = '获取内容失败: '.$e->getMessage();
include 'error.html.php';
exit();	
}
while($aaa = $jieguo->fetch()) //while用来处理大量的数据,fetch将数据集中的下一行作为一个数组返回。
{
$jokes[] = $aaa['joketext']; //将每个值存储为数组$jokes中的一个相
}
include 'joke.html.php';



?>


form.html.php

<title>add-form</title>
<style type="text/css">
textarea {
	display:block;  /*是让对象成为块级元素(比如a,span等)*/
    width:100%;    /*段落的宽度*/
	} 
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="?">  <!--在提交表单时可以从URL红将查询字符串分离出来-->
<div><label>添加新的内容:</label></div>
<div><textarea cols="40" rows="3" id="joketext" name="joketext"></textarea></div>
<div><input name="" type="submit"  value="添加"/>

</div>
</form>
</body>
</html>


joke.html.php

<body>
<table width="200" border="1">
  <tr>
    <th scope="col">笑话详情</th>
  </tr> 
  <?php foreach ($jokes as $joke): ?>
<?php echo '<tr><td>'.htmlspecialchars($joke,ENT_QUOTES,'UTF-8').'</td></tr>'; ?>

<?php endforeach; ?>
</table>
<div class="aa"><a href="?addjoke">添加</a></div>

</body>


exec与execute的区别,对象不同,exec是对象PDO的方法,execute是PDOStarement的方法。