<?php
error_reporting(E_ALL);
$msg = isset($_POST["m"]) ? $_POST["m"] : '';
$date = isset($_POST["d"]) ? $_POST["d"] : '';
$username = isset($_POST["u"]) ? $_POST["u"] : '';
if($msg){
$conn=mysql_connect("localhost","root","admin");
mysql_select_db("eleven-s", $conn);
mysql_query("set names 'utf8'");
if(!$conn){die('error: ' . mysql_error());}
$sql="SELECT id FROM user where username='".addslashes($username)."' ";
$result=mysql_query($sql);
$userInfo = mysql_fetch_assoc($result);
$userId = $userInfo['id'];
// var_dump($sql);
$sql="INSERT INTO msg (user_id,msg_content,msg_date) VALUES ($userId,'$msg','$date')";
$result=mysql_query($sql);
var_dump($result);
mysql_close($conn);
}
?>
php
首先呢 是單引號'和雙引號"的應用
1,php會解析雙引號的內容
例如$a = "11";
$b = "aaaaaa$a";
$c = 'aaaaaa$a';
打印出來的 $b 是 aaaaaa11 ; 而 $c 是 aaaaa$a
php傳遞參數不加引號的時候是表示整型 傳遞的參數是字符串必須加 單引號 mysql
2,申明一個變量是要用isset(); 緣由有不少 這樣安全多了 麻煩少了 sql
3,是防注入 用到了addslashes(); 安全
4,判斷字符串是否是空 不要用 if(strlen($str)>0) 直接 if($str) 後者性能好不少 性能
5,mysql_close($conn);是必須得 開始就得有這樣的好習慣!
學習