我是Ajax和PHP的新手。 决定创建index.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上的foto 第4行
未定义的索引:在C:\ xampp \ htdocs \ lat_ajax204 \ simpan.php上的foto 第5行
未定义的索引:在C:\ xampp \ htdocs \ lat_ajax204 \ simpan.php上的foto 第10行
致命错误:未捕获PDOException:SQLSTATE [23000]:完整性 约束违规:1048专栏&#39;照片&#39;不能为空 C:\ xampp \ htdocs \ lat_ajax204 \ simpan.php:11堆栈跟踪:#0 C:\ XAMPP \ htdocs中\ lat_ajax204 \ simpan.php(11): PDOStatement-&gt;执行(数组)#1 {main}抛出 第11行的C:\ xampp \ htdocs \ lat_ajax204 \ simpan.php
我在mahasiswa表中为foto创建了一个mysql列,类型为blob。它会成功吗?但是index.php完全没有错误。谢谢
答案 0 :(得分:0)
使用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";
}
}