2012-07-18 91 views
0

我在PHP上越來越好 - 但我不知道我在做什麼時,談到MySQL。MySQL的基本幫助? - 提交數據

我有一個代碼

<a href="http://www.example.com/test.php?for=abcde&affi=12345&reff=foo"><IMG></a> 

我需要抓住的「for」,「阿菲」和「REFF」並將其輸入到數據庫中

//Start the DB Call 
    $mysqli = mysqli_init(); 

//Log in to the DB 
    if (!$mysqli) { 
     die('mysqli_init failed'); 
    } 

    if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) { 
     die('Setting MYSQLI_INIT_COMMAND failed'); 
    } 

    if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) { 
     die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed'); 
    } 

    if (!$mysqli->real_connect('localhost', 'USERNAME', 'PASSWORD', 'DATABASE')) { 
die('Connect Error (' . mysqli_connect_errno() . ') ' 
     . mysqli_connect_error()); 
} 

,我使用什麼創建連接。有用。我還創建了一個表格,稱之爲「表格」,其中包含「for」,「affi」和「reff」的行。

所以我的問題是,有人已經指向http://www.example.com/test.php?for=abcde&affi=12345&reff=foo

現在,我已經有了一個數據庫連接開放 - 我怎麼發送將其重定向到目的地站點之前的數據到數據庫?他們點擊 - 通過此頁面 - 重定向到目的地。

BONUS KARMA - 我還需要一個單獨的PHP文件,我可以從該數據庫創建PULLS。如果你可以指點我一些指令或向我展示一個簡單的「如何從該表中拉出這些行值」,我將非常感激:)

+0

請確保您瞭解[idempotence](http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Idempotent_methods_and_web_applications); GET(通常)不應該導致像這樣的插入(除了記錄pagehits等,所以你可能**在這種情況下是正確的)。 – RobIII 2012-07-18 00:53:09

回答

0

如果我理解正確,您將需要使用$_GET來獲取URL參數。

然後,你要與你得到了價值,這應該是這樣運行的分貝insert query

INSERT INTO table VALUES(x, y, z) 

然後,你需要使用location header改變頁面。

對於獎金問題,你只需要你有一個選擇查詢等具有代碼:

SELECT * FROM table WHERE 1; 

,然後取query results

如果這不能回答您的問題,請提供一些說明。

+0

另一個答案很好,爲我提供了最佳實踐方法 - 但是這似乎回答了我的實際問題!非常感謝,我感謝幫助:) – Xhynk 2012-07-18 16:43:35

0

Mysqli是不推薦使用的函數,現在建議使用PDO連接到數據庫。你可以做下面的事情。

<?php 
    $conn = new PDO('dblib:host=your_hostname;dbname=your_db;charset=UTF-8', $user, $pass); 
    $sql = "SELECT * FROM users WHERE username = '$username'"; 
    $result = $conn->query($sql); 
?> 

閱讀全文here

+0

用於PDO的+1還用於不參數化查詢的-1。 – 2012-07-18 00:52:04

+0

我很欣賞PDO信息。我做了一些研究,似乎MySQLi和PDO對我來說可以忽略不計 - 儘管我可能會改爲PDO,因爲a)我還沒有進入這個項目,b)它似乎是目前的最佳做法。謝謝 – Xhynk 2012-07-18 16:42:56

+1

@AlexDemchak使用POD的最大原因是它不依賴於特定的數據庫。 mysqli只能用於mysql數據庫,並且在將來如果你需要將數據庫更改爲其他內容(可以說sqlite),那麼整個代碼將會中斷(或者至少需要在很多地方進行更改)。 – Subash 2012-07-18 23:09:27