2015-10-20 55 views
0

我是新来的php。我有这段代码:更改代码以将mySQL链接到函数中

<?php 
if (!isset($_GET['id'])) { 
    die("missing query parameter"); 
} 
$id = intval($_GET['id']); 
if ($id === '') { 
    die("Invalid query parameter"); 
} 

$db = mysql_connect("localhost", "root", "usbw"); 
$sdb = mysql_select_db("test", $db); 
$sql = "SELECT * FROM config WHERE id=$id"; 
$mq = mysql_query($sql) or die("not working query"); 
$row = mysql_fetch_array($mq); 
?> 

而从这段代码,我想做一个函数,但是怎么做? 我想要做的是将我的MySQL数据库链接到我的PHP代码,并且如果更改我的ID,我也尝试使用GET[id]来自动更改我的页面。

这段代码确实有用,但我想将它改成一个函数。但我不知道如何开始。

+1

让我们把函数xxx(){}放在它的周围吗? – Naruto

回答

1

下面是围绕您的查询的函数示例,请注意,它仅仅是一个示例,因为有许多改进。
如不使用mysql_* API和对PDOmysqli_*

移动,但它应该足以让你开始

<?php 

// your if logic stays unchanged 

$db=mysql_connect("localhost","root","usbw"); 
$sdb=mysql_select_db("test",$db); 


function getConfig($id,$db){ 

    $sql="SELECT * FROM config WHERE id=$id"; 
    $mq=mysql_query($sql); 

    if ($mq) { 
     return mysql_fetch_array($mq); 
    } 
    else { 
     return false; 
    } 

} 

$results = getConfig($id,$db); 

if ($results==false) { 
    print "the query failed"; 
} 
else var_dump($results); 
+0

非常感谢您的帮助。 –

+0

不客气! –

+0

现在我在我的网站上遇到错误。它说:“未定义的变量” 附近的某个地方$结果 –

0

你可以做一个db.php中包括一些常见的数据库功能,使文件命名你将能够使用它们更容易:

<?php 
function db_connection() { 
    //SERVER, USER, MY_PASSWORD, MY_DATABASE are constants 
    $connection = mysqli_connect(SERVER, USER, MY_PASSWORD, MY_DATABASE); 
    mysqli_set_charset($connection, 'utf8'); 
    if (!$connection) { 
     die("Database connection failed: " . mysqli_error()); 
    } 
    return $connection; 
} 

function db_selection() { 
    $db_select = mysqli_select_db(MY_DATABASE, db_connection()); 
    if (!$db_select) { 
     die("Database selection failed: " . mysqli_error()); 
    } 
    return $db_select; 
} 

function confirm_query($connection, $result_set) { 
    if (!$result_set) { 
     die("Database error: " . mysqli_error($connection)); 
    } 
} 

function q($connection, $query) { 
    $result = mysqli_query($connection, $query); 
    confirm_query($connection, $result); 
    return $result; 
} 
?> 

然后,你可以有你的代码在其他一些文件:

<?php 
require_once('db.php'); //This file is required 

$id = $_GET['id']; //Shorthand the $_GET['id'] variable 
if (!isset($id)) { 
    die("missing query parameter"); 
} 
if (filter_var($id, FILTER_VALIDATE_INT) === false)) { 
    die("Invalid query parameter"); 
} 
$sql = "SELECT * FROM config WHERE id = '$id'"; 
$result = q($connection, $sql); 
while ($row = mysqli_fetch_array($result)) { 
    //Do something 
} 
?> 

尽量不要使用mysql_ *函数,因为它们已被弃用。使用mysqli_ *或者甚至更好地尝试了解准备好的语句或PDO。

+0

好吧,我会试试这个。但对于像我这样的初学者来说,这可能有点复杂。有人可以告诉我在哪里可以找到更多信息abour PDO? –

+0

http://stackoverflow.com/questions/1943069/are-there-good-tutorials-on-how-to-use-pdo和https://www.google.gr/?gfe_rd=cr&ei=r1EmVrvOHOiH8QeCioHADA#q= php + pdo +示例 –

+0

感谢您的帮助 –