PHP를 사용하여 VFP 9.0에서 ADO COM을 사용하는 일부 테이블을 업데이트하고 있습니다.PHP를 사용하여 Visual foxpro DBF 업데이트
여기서 절을 지정할 때까지 DBF를 선택하고 업데이트 할 수 있습니다.
쿼리에 where 절을 추가하면 간단히 0 개의 행이 반환되거나 업데이트됩니다.
$conn = new COM("ADODB.Connection");
$conn->Open('Provider=VFPOLEDB.1;Data Source="C:\\testDB.dbc";');
$query = "UPDATE TABLE1 set COL1 = \"AA\", COL2 = \"Updated value\" ";
$conn->Execute($query);
$query = "SELECT * FROM TABLE1 ";
$rs = $conn->Execute($query) or die("Error in query: $query. " . $conn->ErrorMsg());
while (!$rs->EOF) {
echo " Got COL1: " . $rs->Fields("COL1") . " :: COL2: " . $rs->Fields("COL2") . " id: " . $rs->Fields("ID") . "\n";
$rs->MoveNext();
}
결과 :
Got COL1: AA :: COL2: Updated value id: 0
Got COL1: AA :: COL2: Updated value id: 1
Got COL1: AA :: COL2: Updated value id: 2
코드 2 :
Got COL1: AA :: COL2: Updated value id: 0
Got COL1: AA :: COL2: Updated value id: 1
Got COL1: AA :: COL2: Updated value id: 2
ID 열에는 상기 테이블의 열쇠 : 절
$query = "UPDATE TABLE1 set COL1 = \"BB\", COL2 = \"NEW2\" WHERE ID = 1";
$conn->Execute($query);
$query = "SELECT * FROM TABLE1 ";
$rs = $conn->Execute($query) or die("Error in query: $query. " . $conn->ErrorMsg());
while (!$rs->EOF) {
echo " Got COL1: " . $rs->Fields("COL1") . " :: COL2: " . $rs->Fields("COL2") . " id: " . $rs->Fields("ID") . "\n";
$rs->MoveNext();
}
결과가 어디에 부착.
저는 VFP에 비교적 익숙하지 않습니다. 이 Visual Foxpro 설정 또는 업데이트를 방지하거나 선택 적으로 수행 할 경우 선택해야하는 항목인지 확실하지 않습니다.
WHERE 절이없는 쿼리가 잘 작동하므로 따옴표와 같은 문제가 없습니다. 그러나 어쨌든 고마워요. 누군가가 캐스팅을 해결 방법으로 사용하도록 제안했습니다. [ 캐스팅 (ID는 I) = 1] 으로 나에게 제대로 작동하는 것 같습니다. – mtanish