gpt4 book ai didi

php - mysqli_prepare 语句失败

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:30 25 4
gpt4 key购买 nike

我有一个插入查询,我一直在整个网站使用它。工作完美,我在这个网页中使用了 came 查询,但已经向查询添加了验证。我现在已经运行了查询,但收到以下错误:

Undefined variable: run_query

$run_query 是我的 mysqli_prepare 变量的名称。我非常困惑,因为我不明白为什么会收到此错误,这似乎使我的整个查询无法正常工作。

$add_product_errors = array();  
if (isset($_POST['Submit_addon'])) {
$item_name = $_POST['item_name'];
$desc = $_POST['desc'];
$price = $_POST['price'];
// price validate - must be decimal(float)
if (empty($_POST['price']) || !filter_var($_POST['price'], FILTER_VALIDATE_FLOAT) || ($_POST['price'] <= 0)) {
$add_product_errors['price'] = "Please enter a product price";
}
// item name validate
if (empty($_POST['item_name'])) {
$add_product_errors['item_name'] = "Please enter a name";
}
// item name description
if (empty($_POST['desc'])) {
$add_product_errors['desc'] = "Please enter a product description";
}
//add to database
//if (empty($add_product_errors)) {
$query = "INSERT INTO Product (Product_Name,Product_Desc,Product_Price) VALUES (?,?,?)
ON DUPLICATE KEY
UPDATE
Product_Name = VALUES(Product_Name)
,Product_Desc = VALUES(Product_Desc)
,Product_Price = VALUES(Product_Price)";
$run_query = mysqli_prepare($dbc, $query);
//debugging
if (!$run_query) echo mysqli_stmt_error($run_query);
mysqli_stmt_bind_param($run_query, 'sss', $item_name, $desc, $price);
$execute = mysqli_stmt_execute($run_query);
$item_name = strip_tags($_POST['item_name']);
$desc = strip_tags($_POST['desc']);
//100 - changes the way the decimal displays in database
$price = strip_tags($_POST['price'] * 100);
//execute the query
if ($execute) {
echo "<script> alert('Addrrss Saved')</script>";
} else {
echo "<b>Oops! we have an issue </b>";
}
}
mysqli_stmt_close($run_query);

有人能解释一下为什么我的 mysql_prepare 会失败吗。

最佳答案

放线:

mysqli_stmt_close($run_query);

if block 内。否则,当表单尚未发布并且您没有执行 $run_query 分配时,您将执行该行。

此外,当 if (!$run_query) 成功并且您打印错误时,您应该退出脚本。否则,即使准备失败,您也会直接进入尝试执行查询的其余代码。当参数不是语句时,您不能调用 mysqli_stmt_error(),您需要调用 mysqli_error()。将该行更改为:

if (!$run_query) {
die(mysqli_error($dbc));
}

关于php - mysqli_prepare 语句失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36413786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com