我想從Java複製這段代碼到PHP,但我不能完全弄清楚如何獲得行/列的內容?在mysqli_result接收內容
這是java代碼:
ResultSet resultsRS = statement.executeQuery("select distinct snum from shipments where quantity >= 100");
int rowCount=0;
while(resultsRS.next()){
statement2.executeUpdate("UPDATE suppliers SET status = status + 5 WHERE snum = "+"\""+resultsRS.getString(1)+"\"");
rowCount++;
}
到目前爲止,我有這個在PHP:
$result2 = mysqli_query($database,"select distinct snum from shipments where quantity >= 100");
$rowCount = 0;
foreach($result2 as $shipment){
mysqli_query($database,"UPDATE suppliers SET status = status + 5 WHERE snum = "."\"".$shipment."\"");
rowCount++;
}
如同預期這是行不通的。
另外如果你注意到我想要的只是一個特定的列來更新。
編輯:得到它的工作
對於大家閱讀我能得到我想要用下面的代碼:
for($counter=0; $row = mysqli_fetch_row($result2);$counter++){
foreach($row as $key=> $value){
mysqli_query($database,"UPDATE suppliers SET status = status + 5 WHERE snum = "."\"".$value."\"");
$rowCount++;
}
}
實際上,文檔指出,自PHP 5.4以來,mysqli_query返回的mysqli_result對象實現了Traversable接口,因此可以直接迭代。我也在提問者的代碼中喋喋不休,但它現在看起來確實有效。 – kander
哦,我明白了,很高興知道這一點。雖然在工作中我們堅持5.3,也許這就是我錯過的原因。但無論如何,我想你仍然必須把它當作一個列的集合。所以你必須使用'$ shipment ['snum']'而不是簡單地'$ shipment'。 – fejese