Выполнить запрос в операторе IF внутри цикла FOR с помощью PHPExcel
У меня есть вопрос по выполнению запроса внутри оператора IF. Я начну с того, как я хочу запустить процесс. Изначально у меня есть файл Excel, который я хочу загрузить в базу данных MYSql. Используя 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(),
)
);
}
}
}
Любая помощь приветствуется. Спасибо
1 ответ
$statement1
это PDOStatement
объект, и поэтому вы не можете сравнить его с "1"
, Что вам нужно сделать, это получить результат запроса и сравнить его с 1. Вы можете сделать это с fetchColumn
:
if ($statement1->fetchColumn() == 1) {