我是PHP的新手,我在根据已经存储在另一个表中的内容验证数据时遇到了一些问题。这个想法非常简单,因为有人会根据工作订单输入一些数据并将其写入数据库。如果工作订单号存在于单独的表中,则数据将仅写入数据库。
$sqlv = "Select count (worksorderv) from validationtest where worksorderv = ('".$_POST["worksorder"]."')";
$checkwo = sqlsrv_query($conn, $sqlv, array(), array('Scrollable' => 'buffered'));
if (sqlsrv_fetch_array($checkwo) < 1) {
echo "That is not a valid works order.<br />";
}else{
$sql = "INSERT INTO main_table (worksorder, part, quantity, date)
VALUES ('".$_POST["worksorder"]."','".$_POST["part"]."','".$_POST["quantity"]."',GETDATE())";
$res = sqlsrv_query($conn, $sql);
我试图创建一个计数,所以如果表中不存在工作顺序,它将输出一个0,否则它存在并可以提交给数据库。
如果我对单个数字进行硬编码,我可以使其工作,但我无法使用$ _POST [&#34; worksorder&#34;]这是表单条目。
它似乎忽略并写入所有条目,无论计数是0还是1
非常感谢任何帮助!
答案 0 :(得分:1)
sqlsrv_fetch_array()
返回一个数组,您在比较中使用此结果:
if (sqlsrv_fetch_array($checkwo) < 1) {
您可能想要检查包含计数结果的实际列:
$sqlv = "Select count(worksorderv) as CNT from validationtest where worksorderv = ('".$_POST["worksorder"]."')";
// ...
$result = sqlsrv_fetch_array($checkwo);
if ($checkwo['CNT'] < 1) {