2013-10-08 132 views
0

我希望有人能幫助我。我試圖使用帶有textarea的PHP表單將數據更新到MySql數據庫中。 只要我用在頁面開頭定義的隨機字符串更新數據庫,它就可以正常工作。但是,當我嘗試使用從表單收到的$ _POST ['text']更新數據庫時,數據庫中的值不會更新。使用PHP更新數據到MySql數據庫表格

我真的不知道問題是什麼,所以我希望有人能夠幫助我完成這項工作。如果我的問題不夠清楚,請讓我知道。

test.php的

<html> 
<head> 
    <script type="text/javascript" src="./js/tinymce/tinymce.min.js"></script> 
    <script type="text/javascript"> 
    tinymce.init({ 
     selector: "textarea", 
     plugins : 'advlist autolink autoresize autosave link image lists charmap media paste preview spellchecker', 
     image_advtab: true 
    }); 
    </script> 
</head> 

<body> 
    <?php 
    $con=mysqli_connect("example.com","test","abc123","my_db"); 
    // Check connection 
    if (mysqli_connect_errno()) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    }         

    $result = mysqli_query($con,"SELECT content FROM page_content WHERE page = 'Zangpedagoog'"); 

    while($row = mysqli_fetch_array($result)) 
    { 
     $text=$row['content'] ; 
    }  
    ?> 

    <form method="post" action="./send.php"> 
    <textarea name="text" width="100%"> 
    <?php echo $text ?> 
    </textarea> 
    <input id="submit" name="submit" type="submit" value="Send"></form></body></html> 

send.php

<?php 
    $update = $_POST['text']; 
    echo $update; 

    $random = '123456'; 
    echo $random; 

    $con=mysql_connect("example.com","test","abc123","my_db"); 
    // Check connection 
    if (!$con) 
    { 
    echo "Failed to connect to MySQL: " . mysql_connect_error(); 
    } 

    mysql_query("UPDATE page_content SET content=$update WHERE page='Zangpedagoog'",$con); 

    mysql_close($con); 

?> 
+0

首先使用了'mysqli_query'那麼你在使用'mysql_query'嘗試堅持以「一個」,'mysqli_'更好,這麼多的理由。 –

+0

mysql_ *已棄用,請改用mysqli或pdo。您還需要準備好預覽語句,您的代碼可以廣泛應用於SQL注入攻擊。 – Snowburnt

+0

也可以使用:http://php.net/manual/en/function.htmlspecialchars.php – Snowburnt

回答

0

我想這是在這裏:

mysql_query("UPDATE page_content SET content=$update WHERE page='Zangpedagoog'",$con); 

你直接把$更新的字符串中。 這是非常危險和愚蠢的,但這不是你的目的。 事實上,導致錯誤的原因是缺少$更新。 現在,get的值直接放入查詢中,而不是字符串,我認爲你想要的。 請記住,這是非常開放的SQL注入! 固定碼:

mysql_query("UPDATE page_content SET content='$update' WHERE page='Zangpedagoog'",$con); 
+0

謝謝你的回答,它的工作原理!我知道它對SQL注入是開放的,我只是在嘗試一些東西,但是謝謝你提醒我! – user1946633