PHP-MYSQL 学习笔记

PHP连接数据库

PDO: 静默模式(default)/警告模式/异常模式

处理PDO静默模式 需要用 “===”判断,避免”影响0行”的成功查询

$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);

$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);  



try{

    $db = new PDO('mysql:host=localhost;dbname=practise4php','root','root');

}catch (PDOException $e){

    echo "errors :".$e->getMessage();

}

$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

//INSERT

$row = $db->exec('INSERT INTO dishes (dish_id,dish_name,price,is_spicy) VALUES (6,\'Big Chips\',12,0)');

echo $row;

//UPDATE

$row = $db->exec('UPDATE dishes SET dish_name = \'bigchips\' WHERE dish_id = 6');

echo $row;

//DELETE

$row = $db->exec('DELETE FROM dishes WHERE dish_id = 12');

echo $row;

//使用占位符和execute($arr)传入values进行数据插入

$stmt = $db->prepare('INSERT INTO dishes (dish_id,dish_name,price,is_spicy) VALUES (?,?,?,?)');

$stmt->execute(array(12,'dish',111,1));

/*SELECT  只能使用query()和fetch()方法

$q->fetch()中不带参数: 返回值为数组;

使用PDO::FETCH_NUM参数:返回值为键值对数组;

使用PDO::FETCH_OBJ参数: 返回值为对象;*/

$q = $db->query('SELECT * FROM dishes ORDER BY dish_id');

while ($row = $q->fetch()){

//    echo "ID = {$row->dish_id} , Name = {$row->dish_name} , Price = {$row->price} , Taste = {$row->is_spicy}
";

    echo "ID ={$row[0]} , Name = {$row[1]} , Price = {$row[2]} , Taste = {$row[3]}
";

}

//使用默认获取风格  $q->setFetchMode(PDO::FETCH_NUM);

//为所有查询设定默认获取风格,在连接上调用setAttribute()方法:$db->setAttribute(PDO::DEFAULT_FETCH_MODE,PDO::FETCH_NUM);


安全获取表单数据:使用PDO提供的quote()和strtr()函数。

    1.将表单提交的值传给quote()。

    2.使用strtr()转义SQL通配符 % 和 _ 。

转义后的字符串可以在查询中放心使用。

你可能感兴趣的:(PHP-MYSQL 学习笔记)