- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<分区>
我正在尝试使用准备好的语句来验证表单,并且我希望能够在多个表单中使用相同的代码。我想坚持使用 DRY 方法。
每个表单将包含不同的表单名称(表示数据库表的隐藏字段)并具有不同的属性(选择列表中的值表示 MYSQL 数据库中的列),这些属性需要在添加到之前进行验证购物车。
由于某些疯狂的原因,价格增加是在 JS 中完成的(我知道这是一种糟糕的增加价格的方式,但这是我唯一的选择,所以不幸的是,这不是一个选择)。需要验证表单以确保用户没有篡改表单以节省一些钱。因此,我检查的方式是从表单中获取值,并根据数据库中的值检查它们,以确保它们相同,如果任何值与数据库中的值不同,则表单无效。我不断收到关于我的 SQL 语句的错误。特别是它未能准备声明
这是带有准备好的语句的 PHP 代码:
<?php
///////MYSQL Login Data/////
$user = "root";
$password = "";
$database = "printoptions";
///////MYSQL loging Data ///////
//Grab the quantity selected from the form
$quantity = explode('|+', $_POST['quantity']);
//Set quantity to be only the numerical value not the add amount part
$quantity = $quantity[0];
//what is the name of the form? This comes from a hidden field
$formname = $_POST['formname'];
//instantiate mysqli object used for db queries
$mysqli = new mysqli("localhost", $user, $password, $database);
//If there is an error connecting to the database spit it out and tell me what the error is
if ($mysqli->connect_errno)
{
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
//Start our prepared statment
//The query is:
//SELECT `$attribute` FROM `$formname` WHERE `quantity` = $quantity
if (!($stmt = $mysqli->prepare('SELECT ? FROM ? WHERE `quantity`=?')))
{
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
//Loop Through each Post value
foreach ($_POST as $name => $value)
{
//make sure we don't grab formname and quantity just get all the attributes and leave those alone
if ($name != 'formname' AND $name != 'quantity')
{
//Prepared statement do our bind and execute
//the attribute is the field values first part before the |+
//so explode the $value
$attribute = explode('|+', $value);
//Assign just the first part
$attribute = $attribute[0];
//do the binding string, string, float(double)
if (!$stmt->bind_param("sss", $attribute, $formname, $quantity))
{
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}
//execute the query based on the binded paramaters
if (!$stmt->execute())
{
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
//Bind the results of the query temporarily to $result
$stmt->bind_result($result);
//If the result of the query is NOT equal to the value of the field make it fail validation
if ($result != $value)
{
//What to do if it fails validation
echo "Validation Failed You little Cheater!";
} else
{
//What to do if it passes validation
echo "Validation Success!";
}
//end if checking form values aginst DB values
}
//end if excluding formname and quantity
}
//end foreach loop
然后表单 HTML 本身只是为了阐明 |+ 之前的值的第一部分是列名称,而第二部分是要添加到价格中的多少。所以:value="columnName|+priceIncrease"
<form action="post.php" method="post">
<input type="hidden" name="formname" value="brochure">
<div>
<select name="quantity" id="ff_elem13">
<option value="1000|+550.00">1000</option>
<option value="2500|+900.00">2500</option>
</select>
</div>
<div>
<select name="fold" id="ff_elem14">
<option value="foldBi|+15.00">Bi Fold</option>
<option value="foldTri|+20.00">Tri Fold</option>
</select>
</div>
<div>
<select name="color" id="ff_elem15">
<option value="color40|+15.00"> Color 4:0</option>
<option value="color41|+20.00">Color 4:1</option>
</select>
</div>
<div>
<select name="rush" id="ff_elem16">
<option value="rush13|+15.00">Rush 1-3 Days</option>
<option value="rush24|+20.00">Rush 2-4 Days</option>
</select>
</div>
<input type="SUBMIT" value="Submit">
</form>
我收到的错误是
Prepare failed: (1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? WHERE
quantity
=?' at line 1
我该如何解决这个问题,以便我可以使用这个准备好的语句?我环顾四周,但从未见过有人使用 ?用于选择实际的表名称,并且主要是人们使用它来插入或更新值。
希望这足以解释我的情况,但如果我遗漏了什么,请告诉我,以便我可以纠正自己。
reqwest v0.9 将 serde v1.0 作为依赖项,因此实现 converting serde_json errors into reqwest error . 在我的代码中,我使用 se
我有这个代码: let file = FileStorage { // ... }; file.write("Test", bytes.as_ref()) .map_err(|e| Mu
我只是尝试用angular-cli创建一个新项目,然后运行服务器,但是它停止并显示一条有趣的消息:Error: No errors。 我以这种方式更新了(希望有帮助):npm uninstall -g
我从我的 javascript 发送交易 Metamask 打开传输对话框 我确定 i get an error message in metamask (inpage.js:1 MetaMask -
这个问题在这里已经有了答案: How do you define custom `Error` types in Rust? (3 个答案) How to get a reference to a
我想知道两者之间有什么大的区别 if let error = error{} vs if error != nil?或者只是人们的不同之处,比如他们如何用代码表达自己? 例如,如果我使用这段代码: u
当我尝试发送超过 50KB 的图像时,我在 Blazor 服务器应用程序上收到以下错误消息 Error: Connection disconnected with error 'Error: Serv
我有一个error-page指令,它将所有异常重定向到错误显示页面 我的web.xml: [...] java.lang.Exception /vi
我有这样的对象: address: { "phone" : 888, "value" : 12 } 在 WHERE 中我需要通过 address.value 查找对象,但是在 SQL 中有函数
每次我尝试编译我的代码时,我都会遇到大量错误。这不是我的代码的问题,因为它在另一台计算机上工作得很好。我尝试重新安装和修复,但这没有帮助。这是整个错误消息: 1>------ Build starte
在我的代码的类部分,如果我写一个错误,则在不应该的情况下,将有几行报告为错误。我将'| error'放在可以从错误中恢复的良好/安全位置,但是我认为它没有使用它。也许它试图在某个地方恢复中间表情? 有
我遇到了 csv 输入文件整体读取故障的问题,我可以通过在 read_csv 函数中添加 "error_bad_lines=False" 来删除这些问题来解决这个问题。 但是我需要报告这些造成问题的文
在 Spring 中,验证后我们在 controller 中得到一个 BindingResult 对象。 很简单,如果我收到验证错误,我想重新显示我的表单,并在每个受影响的字段上方显示错误消息。 因此
我不知道出了什么问题,因为我用 Java 编程了大约一年,从来没有遇到过这个错误。在一分钟前在 Eclipse 中编译和运行工作,现在我得到这个错误: #A fatal error has been
SELECT to_char(messages. TIME, 'YYYY/MM/DD') AS FullDate, to_char(messages. TIME, 'MM/DD
我收到这些错误: AnonymousPath\Anonymized.vb : error BC30037: Character is not valid. AnonymousPath\Anonymiz
我刚刚安装了 gridengine 并在执行 qstat 时出现错误: error: commlib error: got select error (Connection refused) erro
嗨,我正在学习 PHP,我从 CRUD 系统开始,我在 Windows 上安装了 WAMP 服务器,当我运行它时,我收到以下错误消息。 SCREAM: Error suppression ignore
我刚刚开始一个新项目,我正在学习核心数据教程,可以找到:https://www.youtube.com/watch?v=zZJpsszfTHM 我似乎无法弄清楚为什么会抛出此错误。我有一个名为“Exp
当我使用 Jenkins 运行新构建时,出现以下错误: "FilePathY\XXX.cpp : fatal error C1853: 'FilePathZ\XXX.pch' precompiled
我是一名优秀的程序员,十分优秀!