2016-10-28 69 views
0

美好的一天,我試圖使用PHP它有點工作將數據插入到MySQL表,但我不能看到數據在phpMyAdmin蹊蹺的數據插入

<?php 
$con=mysqli_connect('localhost','root',''); 
if(!$con) 
{ 
echo("not connected"); 
} 
if(!mysqli_select_db($con,'exam')) 
{ 
echo 'db not selected'; 
} 
$header = $_POST['header']; 
$date = $_POST['date']; 
$categ = $_POST['categ']; 
$moder = $_POST['moder']; 
$posttxt = $_POST['posttxt']; 
$theme = $_POST['theme']; 
$author = $_POST['author']; 
$sql = "INSERT INTO postex (header,date,categ,moder,posttxt,theme,author) VALUES ('$header','$date','$categ','$moder','$posttxt','$theme','$author')"; 
if 
(empty($header) || empty($date) || empty($categ) || empty($moder) || empty($posttxt) || empty($theme) || empty($author)) 
{ 
    echo "<Br>feel the fields!!!"; 

} 
else{ 
echo("<br>added,wait for redirect"); 
} 
?> 
+0

你不執行你的查詢,你只是定義一個字符串。但是當你這樣做時,你將會遇到一個sql注入問題。 – jeroen

+0

那我該如何執行它? – Michael97

+0

你應該從手冊開始...... – jeroen

回答

3

好了,再錯誤的答案拿出使用前mysql_,它的mysqli_query($con, $sql)未用於執行查詢。

和照顧,你要離開自己開來,如果/當你去住這個是SQL注入。

用事先準備好的聲明中

同時確保接線柱陣列都包含值(和形式使用相匹配的名爲POST方法輸入),並沒有任何字符通過MySQL可以抱怨回合,例如:撇號。

從任何方面逃避進入的數據。

檢查通過PHP錯誤和查詢:


諾塔:

你應該先檢查是否有任何字段是(不)空,然後執行查詢。

I.e.和僞條件語句:

if(none empty and good to go){ 

    // execute the query 
} 

else{ 
// do something else 
} 

另外,如果你正在使用的同一個文件內整個代碼,是形式和PHP/MySQL的,那麼你應該檢查是否有任何接線柱陣列的設置/非空第一。這會引發一些錯誤並給你帶來不希望的結果。

+0

@ jeroen如果您願意的話,我不會提交答案;-)我不得不直接設置記錄。 –

+0

@ jeroen哦,對不起*大聲笑*好吧,我在這個問題上做了一個評論,但覺得它應該是答案的一部分。 –

0
     <?php 
       function db(){ 
       $servername = "servername"; 
       $username = "username"; 
       $password = "password"; 
       $database = "database"; 

       // Create connection 
       $conn = new mysqli($servername, $username, $password,$database); 
       $conn->query("SET CHARACTER SET utf8"); 
       // Check connection 
       if ($conn->connect_error) { 
        die("Connection failed: " . $conn->connect_error); 
        return false; 
       }else{ 
       return $conn; 
       } 
      } 

    $data=db(); 

     $insert="INSERT INTO movies (bla1, bla2, bla3) VALUES (blavalue1, blavalue2, blavalue3)"; 


     $dotaz=mysqli_query($data,$insert); 

if($dotaz){ 
echo "OK"; 
}else{ 
echo "Wrong"; 
} 
       ?>