mysqli_stmt_execute()不执行准备好的查询

时间:2016-12-31 02:54:00

标签: php mysqli

到了这一点。

mysqli prepared语句没有将数据提交到数据库中,mysqli_error没有返回任何错误

可能是因为我在编写错误处理程序时犯了一个错误,因为它在mysqli_stmt_execute未返回TRUE时显示消息

修改

看起来mysqli_stmt_execute()不执行查询。那是为什么?

PHP-mysqli脚本

// Simpan data ke dalam variable
$nama_produk=$_POST['nama_produk'];
$id_kategori=$_POST['kategori'];
$id_kategori2=$_POST['kategori2'];
$label=$_POST['label'];
$harga=$_POST['harga'];
$harga2=$_POST['harga2'];
$stok=$_POST['stok'];
$deskripsi=$_POST['deskripsi'];
$spesifikasi=$_POST['spesifikasi'];
$potongan=$_POST['potongan'];
$produk_seo      = seo_title($_POST['nama_produk']);
$tanggal=$tgl_sekarang;
$gambar=$nama_file_unik;

 $stmt=mysqli_prepare($con,"INSERT INTO produk(nama_produk,produk_seo,id_kategori,id_kategori2,label,harga,harga2,stok,spesifikasi,deskripsi,tgl_masuk,potongan,gambar) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)");

 mysqli_stmt_bind_param($stmt,"sssssssssssss",$nama_produk,$produk_seo,$id_kategori,$id_kategori2,$label,$harga,$harga2,$stok,$spesifikasi,$deskripsi,$tanggal,$potongan,$gambar);

 if(mysqli_stmt_execute($stmt)){
    mysqli_stmt_error($stmt);
 } else {
     echo"<h1>Query gagal</h1>";
     mysqli_error($con);
     mysqli_errno($con);
     mysqli_stmt_error($stmt);
 }

通常会有一条消息说某些东西的数量与某些内容相匹配,但没有一个,只有一个大的查询gagal&#39;

1 个答案:

答案 0 :(得分:2)

试试这个:

// Simpan data ke dalam variable
$nama_produk=$_POST['nama_produk'];
$id_kategori=$_POST['kategori'];
$id_kategori2=$_POST['kategori2'];
$label=$_POST['label'];
$harga=$_POST['harga'];
$harga2=$_POST['harga2'];
$stok=$_POST['stok'];
$deskripsi=$_POST['deskripsi'];
$spesifikasi=$_POST['spesifikasi'];
$potongan=$_POST['potongan'];
$produk_seo      = seo_title($_POST['nama_produk']);
$tanggal=$tgl_sekarang;
$gambar=$nama_file_unik;

$stmt=mysqli_prepare($con,"INSERT INTO produk(nama_produk,produk_seo,id_kategori,id_kategori2,label,harga,harga2,stok,spesifikasi,deskripsi,tgl_masuk,potongan,gambar) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)");
if(false===$stmt){
die('Error with prepare: ') . htmlspecialchars($mysqli->error));
}

$bp = mysqli_stmt_bind_param($stmt,"sssssssssssss",$nama_produk,$produk_seo,$id_kategori,$id_kategori2,$label,$harga,$harga2,$stok,$spesifikasi,$deskripsi,$tanggal,$potongan,$gambar);
    if(false===$bp){
        die('Error with bind_param: ') . htmlspecialchars($stmt->error));
    }

$bp = $stmt->execute();
    if ( false===$bp ) {
        die('Error with execute: ' . htmlspecialchars($stmt->error));
    }

$stmt->close();