簡體   English   中英

將照片添加到數據庫php mysql

[英]Add photo into database php mysql

我想將圖像插入數據庫表中。 我已經搜索了google,但無法將圖像插入數據庫。 我的數據庫字段名稱是“照片”,數據類型是“ blob”。 請幫忙...

這是我的代碼:

<?php
$id="";
$opr="";
if(isset($_GET['opr']))
    $opr=$_GET['opr'];

if(isset($_GET['rs_id']))
    $id=$_GET['rs_id'];
//--------------add data-----------------   
if(isset($_POST['btn_sub'])){
    $fac_name=$_POST['factxt'];
    $batch=$_POST['batchtxt'];
    $reg=$_POST['regtxt'];
    $s_name=$_POST['snametxt'];
    $f_name=$_POST['fnametxt'];
    $gender=$_POST['gender']
    $phone=$_POST['phonetxt'];
    $mail=$_POST['emailtxt'];
    $photo=$_POST['photos'];    

    $sql_ins=mysql_query("INSERT INTO stu_tbl 
                          VALUES(
                            NULL,
                            '$fac_name',
                            '$batch',
                            '$reg',
                            '$s_name',
                            '$f_name' ,
                            '$gender',
                            '$phone',
                            '$mail',
                            '$photo'
                            )
                    ");
    if($sql_ins==true)
        $msg="1 Row Inserted";
    else
        $msg="Insert Error:".mysql_error();
}
?>

<!DOCTYPE html>
<head>
</head>
<body>
    <h2 class="custom-light-heading" align="center">Add New Student</h2>
    <hr>
    <form method="post">
        <table>
            <tr>
                <td>Faculties's Name</td>
                <td>
                    <input type="text" />
                </td>
            </tr>
            <tr>
                <td>Batch:</td>
                <td>
                    <input type="text" class="form-control" name="batchtxt" id="textbox" />
                </td>
            </tr>

            <tr>
                <td>Registration:</td>
                <td>
                    <input type="text" class="form-control" name="regtxt" id="textbox" />
                </td>
            </tr>
            <tr>
                <td>Student Name:</td>
                <td>
                    <input type="text" class="form-control" name="snametxt" id="textbox" />
                </td>
            </tr>
            <tr>
                <td>Father's Name:</td>
                <td>
                    <input type="text" class="form-control" name="fnametxt" id="textbox" />
                </td>
            </tr>
            <tr>
                <td>Gender:</td>
                <td>
                    <input type="radio" name="gender" value="Male" checked="checked" />Male
                    <input type="radio" name="gender" value="Female" />Female
                </td>
            </tr>
            <tr>
                <td>Phone:</td>
                <td>
                    <input type="text" class="form-control" name="phonetxt" id="textbox" />
                </td>
            </tr>
            <tr>
                <td>E-mail:</td>
                <td>
                    <input type="text" class="form-control" name="emailtxt" id="textbox" />
                </td>
            </tr>
            <tr>
                <td>photo:</td>

                <td>
                    <input type="File" name="photos" />
                </td>
            </tr>
            <tr>
                <td>

                    <input type="submit" name="btn_sub" class="btn btn-success" value="Add" id="button-in" />
                </td>
            </tr>
        </table>
        </div>
    </form>
    </div>
    <?php ?>
</body>
</html>

就像我在評論中說的:我看不到開頭的<form>標記。 另外,在處理文件時,它必須是具有有效enctype的post方法。

這是您最初發布的問題:

將以下內容添加到您的代碼中,將操作替換為您自己的操作。

<form action="handler.php" method="post" enctype="multipart/form-data">

如果在同一文件中執行此操作,則可以將action=""用作“ self”。

還有$photo=$_POST['photos']; 需要是$photo=$_FILES['photos']; 使用$_FILES而不是$_POST因為它是一個文件,而不是文本輸入或文件以外的任何內容。

然后,此<input type="text" /> Faculties's Name <input type="text" />沒有名稱屬性,並且似乎與$_POST['factxt']

因此,將其修改為<input type="text" name="factxt" />

  • 使用錯誤報告會發現這一點。 請參閱下面的說明。

旁注:您當前的代碼可以進行SQL注入 mysqli與預處理語句配合使用,或將PDO與預處理語句配合使用則更加安全


錯誤報告添加到文件頂部,這將有助於發現錯誤。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:錯誤報告僅應在登台進行,而不應在生產過程中進行。


腳注:

  • 您應該使用適當的支撐技術。 您的許多條件語句都沒有括號if(condition){...} ,這可能會給您的代碼造成破壞。

  • 如果您確實想檢查查詢是否成功,請使用mysql_affected_rows()

  • 如果您看到有關不推薦使用mysql_通知,那么現在您應該切換到mysqli_或PDO,因為它將從將來的PHP版本中刪除。

暫無
暫無

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

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