1.PDO-1
没记错的话以前好像是用的mysqli连接的数据库,看见去年的培养方案要求PDO
那,学吧
$dsn=’mysql:host=xxxx;dbname=xxxx’;
$user=’xxx’;
$word=’xxx’;
try
{
$db= new PDO($dsn,$user,$word);
}
catch(PDOException $e)
{
die(‘不能连接到数据库 <br / >’.$e);
}
这种就是最常用的写法了
DSN有很多种写法,mysql:这个是数据库类型,除了host和dbname这种参数外,还有port之类的
然后尝试连接,如果失败的话会丢出一个异常
PDO基本方法(基于MySQL)
$values = $db->query(‘SELECT * FROM setting’);
query() 可以用来执行SELECT语句
rowCount() 可以输出查询结果的行数
exec() 可以用来执行UPDATE,DELETE,INSERT语句
quote() 可以用来转义特殊字符
当然,为了安全起见,含有未知参数的都应该使用预处理语句
FetchAll() 方法会输出查询结果的数组,然后我们可以使用foreach来遍历所有查询结果
得到的应该是一个数组的数组
Fetch() 则会返回第一条结果
预处理语句
$statement=$db->prepare(‘SELECT * FROM foods WHERE `name`=? AND `healthy`=?’);
$statement2=$db->prepare(‘SELECT * FROM foods WHERE `name`=:name AND `healthy`=:healthy’);
两种方式都是可以的
$statement->bindValue(1,’cake’);
$statement->bindValue(2,true);
$statement2->bindValue(‘:name’,’pie’);
$statement2->bindValue(‘:healthy’,false);
两种方式的区别,在于命名与匿名,命名明显会增加代码可读性,虽然代码有点冗长
$statement->execute();
上一步是绑定值,这一步是执行
当然也可以直接传值
$statement->execute(array(1 => ‘cake’, 2 => true));
$statement2->execute(array(‘:name’=>’pie’,’:healthy’=>false));
这时的$statement就可以和query()方法返回的一样,使用Fetch()了
总结:PDO的基础知识还是很简单的
2.$_SERVER[“PHP_SELF”]与输入检查
$_SERVER[‘PHP_SELF’] 可以返回当前执行脚本的文件名
通常配合表单里的action,提交给自己的表单
当然了,为了防止在url中注入,可以使用htmlspecialchars() 函数
这个函数可以将某些字符转化成HTML实体,从而防止注入
trim() 函数可以去除用户输入数据中不必要的字符 (如:空格,tab,换行)
stripslashes() 函数可以去除用户输入数据中的反斜杠 (\)
教程里说,可以写一个函数使用这三个函数一起对数据进行处理
3.终于跑起来了
之前一直在写代码,并没有上实际环境测试,结果一上就崩盘了
今天重装了VPS之后,跑起来了