[英]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.