2012-07-18 86 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