如果我有mysql表foo與字段a,b,c,d與多個記錄和一個主鍵。記錄1具有以下數據:a = 1,b =真,c = val1a,d = val2a。 如果我想使用PHP來訪問數據,我做的:PHP MYSQL寫一個關聯數組(記錄)到mysql
$result = mysql_query("SELECT * FROM foo WHERE a = '1'");
$rec = mysql_fetch_array($result);
要改變B和C,我會做:
mysql_query("INSERT INTO foo (b,c) VALUES (false,'newval') WHERE a = '1'");
有沒有寫全記錄沒有列出所有的方式字段(a,b,c,d)?
我想什麼做的是寫全$ REC回表foo:
$rec['b'] = false;
$rec['c'] = 'newval';
mysql_query("INSERT INTO foo $rec");
我知道我可以做一個foreach和建全插入,但有已經是一個PHP函數,它我想要完成什麼?
是的,錯字,我的意思是更新。我已經做了一段時間的mysql,但來自讀取記錄,更改記錄,寫入記錄方法,並認爲是mysql_fetch_array作爲關聯數組在記錄中讀取,如果select用於所有字段,則可能會有php函數寫入將關聯數組放回那裏。我已經看了mysqli的東西,並使用它的一些。 – user999684 2012-01-06 16:31:10
閱讀與寫作完全不同 - 閱讀所有數據時,將以字符串形式返回,與存儲在數據庫中完全相同。因此它不需要寫入的所有類型驗證,轉義等。 OTOH,在不對不同領域和數據採取適當行動的情況下編寫代碼,您很容易就會發現錯誤,錯誤的數據和/或安全問題。 – Nikoloff 2012-01-06 17:28:50
感謝您的信息。有沒有一篇好文章解釋這些東西?所以,如果我爲一條記錄讀取一個int類型的字段,它會以字符串形式返回它,這樣如果我將它寫回來,它會弄亂數據庫,或者這不是您所指的?你是說如果我有一個名爲intfld且值爲123的int字段,請使用上述方法讀取該字段,並將其賦值給像$ var1 = $ rec ['intfld']這樣的變量,然後執行mysql_query(「UPDATE foo SET intfld =「'。$ var1。'」WHERE a ='1'「);它會導致數據庫損壞?我感謝你的幫助。 – user999684 2012-01-06 19:28:16