簡體   English   中英

PHP MySQL沒有插入數據庫

[英]PHP MySQL not inserting into database

我聽說過這個問題,但似乎無法弄明白。 我有正確的數據庫和表名稱。 我沒有發現任何錯誤,我甚至自己在phpmyadmin上插入了一個表,但是當我試圖在我的網站上做它時它不起作用。 我甚至測試了連接......不知道現在要做什么

也許有人可以查看我的代碼,看看他們是否注意到了什么

<?php
if(mysql_connect('<db>', '<un>', '<pw>') && mysql_select_db('smiles'))
{

    $time = time();
    $errors = array();

    if(isset($_POST['guestbook_name'], $_POST['guestbook_message'])){
        $guestbook_name = mysql_real_escape_string(htmlentities($_POST['guestbook_name']));
        $guestbook_message = mysql_real_escape_string(htmlentities($_POST['guestbook_message']));

        if (empty($guestbook_name) || empty($guestbook_message)) {
            $errors[] = 'All Fields are required.';
        }
        if (strlen($guestbook_name)>25 || strlen($guestbook_message)>255) {
            $errors[] = 'One or more fields exceed the character limit.';
        }
        if (empty($errors)) {

            $insert = "INSERT INTO 'guestbook'VALUES('','$time','$guestbook_name','$guestbook_message')"; 
            if($insert = mysql_query($insert)){
                header('Location: '.$_SERVER['PHP_SELF']);
            } else{
              $errors[] = 'Something went wrong . Please try again.';
            }
        } else {
            foreach($errors as $error) {
            echo '<p>'.$error.'</p>';
            }
        }

    }
    //display entries
} 
else {
    'Fixing idiot';
}
      ?> 
      <hr />
       <form action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" method="POST">
     <p>Post Somethign</p>
      <br />
          Name:<br /><input type="text" name="guestbook_name" maxlength="25" />
   <br />
    Message:
    <br />
           <textarea name="guestbook_message" rows="6" coles="30"maxlength="255"></textarea>
      <input type="submit" value="Post" />
      </form>

從表名'guestbook'中刪除引號,並在它和values之間留一個空格

表名不需要引號並且使用id自動增量,不要插入空字符串。 所以它應該是:

$insert = "INSERT INTO guestbook VALUES('$time','$guestbook_name','$guestbook_message')";

另外,看看你的$ time值。 MySQL的數據類型是什么?

插入后,嘗試顯示mysql錯誤:

$conn = mysql_connect('<db>', '<un>', '<pw>');
mysql_query($insert)
if (mysql_errno($conn)){
   $errors[] = mysql_error($conn);
}else{
   header('Location: '.$_SERVER['PHP_SELF']);
}

編輯:漏洞片段應類似於:

<?php
$conn = mysql_connect('<db>', '<un>', '<pw>')
if( $conn && mysql_select_db('smiles')) //Note $conn
{

    $time = time();
    $errors = array();

    if(isset($_POST['guestbook_name'], $_POST['guestbook_message'])){
        $guestbook_name = mysql_real_escape_string(htmlentities($_POST['guestbook_name']));
        $guestbook_message = mysql_real_escape_string(htmlentities($_POST['guestbook_message']));

        if (empty($guestbook_name) || empty($guestbook_message)) {
            $errors[] = 'All Fields are required.';
        }
        if (strlen($guestbook_name)>25 || strlen($guestbook_message)>255) {
            $errors[] = 'One or more fields exceed the character limit.';
        }
        if (empty($errors)) {
            mysql_query($insert)
            $insert = "INSERT INTO guestbook VALUES('$time','$guestbook_name','$guestbook_message')"; 
            if (mysql_errno($conn)){
               $errors[] = mysql_error($conn);
            }else{
               header('Location: '.$_SERVER['PHP_SELF']);
            }
        } else {
            foreach($errors as $error) {
            echo '<p>'.$error.'</p>';
            }
        }

    }
    //display entries
} 

你可以嘗試下面的插入查詢:

$insert = "INSERT INTO guestbook VALUES('','{$time}','{$guestbook_name}','{$guestbook_message}')"; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM