我对在IF语句中执行查询有疑问。 我将从我希望流程如何运行开始。 最初,我有一个要上传到MYSql数据库的Excel文件。 使用PHPExcel,我能够从excel文件中获取数据。 现在,我要对Excel文件中的每个数据进行操作,它将与数据库中的现有数据进行比较。 如果数据匹配,则执行查询以插入到成功表中;如果数据不匹配,则执行查询以插入到失败表中。
这是我的代码,现在该代码只是跳过IF条件并执行失败条件。
$query1 = "SELECT EXISTS(SELECT 1 FROM part WHERE partno = :partno)";
$statement1 = $connect->prepare($query1);
$query2 = "INSERT INTO stock (userid, vendorid, partno, partname)
VALUES (:userid, :vendorid, :partno, :partname)";
$statement2 = $connect->prepare($query2);
$query3 = "INSERT INTO fail (userid, vendorid, partno, partname)
VALUES (:userid, :vendorid, :partno, :partname)";
$statement3 = $connect->prepare($query3);
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet)
{
$highestRow = $worksheet->getHighestRow();
for($row=2; $row<=$highestRow; $row++)
{
$statement1->execute(
array(
':partno' => $worksheet->getCellByColumnAndRow(0, $row)->getValue()
)
);
if ($statement1=="1"){
$statement2->execute(
array(
':userid' => $_SESSION['user_id'],
':vendorid' => $_SESSION['vendorid'],
':partno' => $worksheet->getCellByColumnAndRow(0, $row)->getValue(),
':partname' => $worksheet->getCellByColumnAndRow(1, $row)->getValue(),
)
);
}
else{
$statement3->execute(
array(
':userid' => $_SESSION['user_id'],
':vendorid' => $_SESSION['vendorid'],
':partno' => $worksheet->getCellByColumnAndRow(0, $row)->getValue(),
':partname' => $worksheet->getCellByColumnAndRow(1, $row)->getValue(),
)
);
}
}
}
感谢您的帮助。谢谢
答案 0 :(得分:0)
$statement1
是PDOStatement
对象,因此无法将其与"1"
进行比较。您需要做的就是获取查询结果并将其与1比较。您可以使用fetchColumn
:
if ($statement1->fetchColumn() == 1) {