したがって、4つのテーブルがあり、そのうちの2つにnull値があります。これが、「キャッチ可能な致命的なエラー:クラスバリアントのオブジェクトを文字列に変換できませんでした」の理由であると考えています。
私のテーブルは
table1(dbo.FA_PC)
FAID(pk)
PCID(fk)
table2(dbo.PC)
PCID(PK)
PCCPUTypeID(fk)(some values are null/empty)
table3(dbo.PC_CPU_Type)
PCCPUTypeID(PK)
CPU
BrandID(fk)(some values are null/empty)
table4(Brand)
BrandID(PK)
Brand
だから私のコードとselectステートメントはこのようになります
<?php
$faidf=$_POST['faidf'];
ini_set("display_errors","on");
$conn = new COM("ADODB.Connection");
try {
$myServer = "WTCPHFILESRV\WTCPHINV";
$myUser = "sa";
$myPass = "P@ssw0rd";
$myDB = "wtcphitinventory";
$connStr = "PROVIDER=SQLOLEDB;SERVER=".$myServer.";UID=".$myUser.";PWD=".$myPass.";DATABASE=".$myDB;
$conn->open($connStr);
if (! $conn) {
throw new Exception("Could not connect!");
}
}
catch (Exception $e) {
echo "Error (File:): ".$e->getMessage()."<br>";
}
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql_exp = "SELECT c.CPU, d.Brand
FROM dbo.FA_PC a
INNER JOIN dbo.PC b
on a.PCID = b.PCID
INNER JOIN dbo.PC_CPU_Type c
ON b.PCCPUTypeID = c.PCCPUTypeID
INNER JOIN dbo.Brand d
ON c.BrandID = d.BrandID
WHERE a.FAID = $faidf AND c.PCCPUTypeID is NOT NULL and c.BrandID is NOT NULL";
$rs = $conn->Execute($sql_exp);
echo "<tr><td>".$rs->Fields("Brand")."-".$rs->Fields("CPU")."</td>";
$rs->Close();
?>
whereステートメントが間違っているかselectステートメントが少しずれているか、「キャッチ可能な致命的なエラー:クラスバリアントのオブジェクトを文字列に変換できませんでした」というエラーの原因は何ですか