我是Ajax和PHP的新手。决定创建索引.php(使用 ajax)和 simpan.php
<?php
include 'koneksi.php'; //conn
$target_dir="foto/";
$target_file=$target_dir.basename($_FILES['foto']['name']); //error
move_uploaded_file($_FILES['foto']['tmp_name'],$target_file); //error
$q=$db->prepare("insert into mahasiswa values
(?,?,?,?,?)");
$param=array($_POST['nim'],$_POST['nama'],
$_POST['alamat'],$_POST['email'],
$_FILES['foto']['name']); //error
$q->execute($param);
if($q){
echo "OK";
}else{
echo "fail";
}
我很困惑它有一些错误:
未定义的索引:在 C:''xampp''htdocs''lat_ajax204''simpan.php 中 第 4 行
未定义的索引:在 C:''xampp''htdocs''lat_ajax204''simpan.php 中 第 5 行
未定义的索引:在 C:''xampp''htdocs''lat_ajax204''simpan.php 中 第 10 行
致命错误:未捕获的 PDOException:SQLSTATE[23000]:完整性 约束冲突:1048 列"foto"不能为空 C:''xampp''htdocs''lat_ajax204''simpan.php:11 堆栈跟踪:#0 C:''xampp''htdocs''lat_ajax204''simpan.php(11): PDOStatement->execute(Array) #1 {main} throw in C:''xampp''htdocs''lat_ajax204''simpan.php 在第 11 行
我在 mahasiswa 表中为 foto 创建了一个 mysql 列,类型是 blob。它有问题吗?但是索引.php完全没有错误。谢谢
使用 isset() 检查表单是否已提交。
http://php.net/manual/en/function.isset.php
<?php
include 'koneksi.php'; //conn
if(isset($_FILES['foto'],$_POST['nim'],$_POST['nama'],$_POST['alamat'],$_POST['email'])) {
$target_dir="foto/";
$target_file=$target_dir.basename($_FILES['foto']['name']); //error
move_uploaded_file($_FILES['foto']['tmp_name'],$target_file); //error
$q=$db->prepare("insert into mahasiswa values
(?,?,?,?,?)");
$param=array($_POST['nim'],$_POST['nama'],
$_POST['alamat'],$_POST['email'],
$_FILES['foto']['name']); //error
$q->execute($param);
if($q){
echo "OK";
}else{
echo "fail";
}
}