关于php:mysqli_stmt_execute()不执行准备好的查询

mysqli_stmt_execute() does not execute the prepared query

要点。

mysqli准备好的语句不会将数据提交到数据库中,并且mysqli_error不返回任何错误

可能是因为我写错误处理程序时出错,因为它显示了mysqli_stmt_execute时的消息不会返回TRUE

EDIT

,它看起来像mysqli_stmt_execute()没有执行查询。为什么?

PHP-mysqli脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 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"Query gagal";
     mysqli_error($con);
     mysqli_errno($con);
     mysqli_stmt_error($stmt);
 }

通常会显示一条消息,指出某物的数量与某物匹配,等等,但没有,只是一个很大的"查询gagal'


尝试一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 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();