2012-10-05 84 views
0

我正在嘗試將JavaScript/CSS /代碼插入到MYSQL數據庫中。 Adcode正在從一個textarea下面的PHP代碼過去了,在INSERT成功與adname,但空白與adcode ..POST javascript到mysql數據庫

問題/問題:

  1. 爲什麼輸入空白的代碼插入到數據庫而不是代碼 通過
  2. 什麼是最有效的這樣做的原因是什麼?
  3. 如何在同一時間通過Adname和Adcode和UPDATE。

我的第一個代碼(在下面的代碼兩種版本的固定問題/問題1)版本1

// Insert ad into database 
    $ad = mysql_real_escape_string($_POST['adcode']); 
    $insert = "INSERT INTO ads (adname, adcode) VALUES ('".$_POST['adname']."', '".$_POST['$ad']."')"; 
    $doit = mysql_query($insert); 

我當前的代碼:第2版(對於問題一和二)

if ($_GET['action'] == "editad") { // Edit AD 
    $newadcode = mysql_real_escape_string($_POST['adcode' . $ID]); 
    $doedit = "UPDATE `adgate`.`ads` SET `ads`.`adcode` = '$newadcode' WHERE `ads`.`ID` = '$ID' LIMIT 1" or die(mysql_error()); 
    $retval = mysql_query($doedit, $connection); 
    if(! $retval) 
    { 
     die('Could not update data: ' . mysql_error()); 
    } 
    echo "Updated data successfully\n"; 
    //header("Location: displayads.php"); 
+3

小心;這很容易受到SQL注入的影響。在將它們放入查詢之前,您應該先轉義$ _POST ['adname']'和'$ _POST ['$ ad']'。更好的是,你可以使用預先準備的語句和PDO-MySQL或MySQLi – 2012-10-05 02:52:08

+0

我怎麼能逃脫它。對不起,我只是學習PHP。感謝所有的幫助! – Caiapfas

+0

[偉大的逃避現實(或:你需要知道如何處理文本中的文本)](http://kunststube.net/escapism/) – deceze

回答

1

嘗試:

$adname = mysql_real_escape_string($_POST['adname']); 
$adcode = mysql_real_escape_string($_POST['adcode']); 
$insert = "INSERT INTO ads (adname, adcode) VALUES ('".$adname."', '".$adcode."')"; 
$doit = mysql_query($insert); 
+0

@Caiapfas不用擔心,歡迎來到Stackoverflow,祝你好運! – Stegrex

1

現貨的錯誤:

$ad = mysql_real_escape_string($_POST['adcode']); 
^^^ 
... "... VALUES ('".$_POST['adname']."', '".$_POST['$ad']."')"; 
              ^^^^^^^^^^^^^ 

在開發過程中啓用錯誤報告!這會引發一個很好的警告。

+0

感謝好信息。打開它,發現問題,然後一些......大聲笑 – Caiapfas