PHP验证另一个表

时间:2015-09-17 11:38:48

标签: php sql-server

我是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

非常感谢任何帮助!

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) {