我有一个查询,我需要在具有不同varriables的页面中多次运行我需要帮助创建一个与此代码相同的函数:
$type = "A";
$getRecordsQuery = "SELECT * from records where domain_id=$domainID and type='". $type ."'" or die("Error:" . \mysqli_error($link));
$result = mysqli_query($link, $getRecordsQuery);
if ($result === FALSE) {
die("Error: " . mysqli_error($link));
} else {
echo "<table border='1'>
<tr>
<td>Name</td>
<td>IP</td>
<td>DynDNS</td>
<td>TTL</td>
</tr>";
while ($row = mysqli_fetch_array($result)) {
$name = $row["name"];
$ip = $row["content"];
$ttl = $row["ttl"];
echo "<tr>
<td>". $name ."</td>
<td>". $ip ."</td>
<td>Off</td>
<td>". $ttl ."<td>
</tr>";
}
echo "</table>";
基本上,它从数据库中查询表,并将所需信息放入表中。我需要这个函数来做同样的事情。
提前致谢。
答案 0 :(得分:0)
您基本上将代码放在可以调用的功能块中 -
function getData($domainID, $domainType, $link) {
$getRecordsQuery = "SELECT * from records where domain_id=$domainID and type='". $domainType ."'" or die("Error:" . \mysqli_error($link));
$result = mysqli_query($link, $getRecordsQuery);
if ($result === FALSE) {
die("Error: " . mysqli_error($link));
} else {
$table = "<table border='1'>
<tr>
<td>Name</td>
<td>IP</td>
<td>DynDNS</td>
<td>TTL</td>
</tr>";
while ($row = mysqli_fetch_array($result)) {
$name = $row["name"];
$ip = $row["content"];
$ttl = $row["ttl"];
$table .= "<tr>
<td>". $name ."</td>
<td>". $ip ."</td>
<td>Off</td>
<td>". $ttl ."<td>
</tr>";
}
$table .= "</table>";
return $table;
}
然后你可以在传递域名时调用它并输入。
echo getData($fooID, $barType, $databaseConnection);
您还必须传入数据库连接,因为您可能已在此功能之外的某处建立了该连接。
通过了解prepared statements并使用它们来帮助预防SQL Injection等问题,可以大大改善这一点。
答案 1 :(得分:0)
此功能是您所需要的:
function getRecords($domainId, $type, $link) {
$getRecordsQuery = "SELECT * FROM records WHERE domain_id='".mysql_real_escape_string($domainId)."' AND type='".mysql_real_escape_string($type)."'";
$result = mysqli_query($link, $getRecordsQuery);
if (!$result){
die("Error: " . mysqli_error($link));
} else{
echo "<table border='1'>
<tr>
<td>Name</td>
<td>IP</td>
<td>DynDNS</td>
<td>TTL</td>
</tr>";
while ($row = mysqli_fetch_array($result)) {
$name = $row["name"];
$ip = $row["content"];
$ttl = $row["ttl"];
echo "<tr>
<td>". $name ."</td>
<td>". $ip ."</td>
<td>Off</td>
<td>". $ttl ."<td>
</tr>";
}
echo "</table>";
}
}
使用它:
getRecords(7, 'A', $link);
您应该将HTML代码与功能分开:
function getRecords($domainId, $type, $link) {
$getRecordsQuery = "SELECT * FROM records WHERE domain_id='".mysql_real_escape_string($domainId)."' AND type='".mysql_real_escape_string($type)."'";
$result = mysqli_query($link, $getRecordsQuery);
if (!$result){
die("Error: " . mysqli_error($link));
} else{
return $result;
}
}
在HTML中使用它:
<table border='1'>
<tr>
<td>Name</td>
<td>IP</td>
<td>DynDNS</td>
<td>TTL</td>
</tr>
<?php
$res = getRecords(7, 'A', $link);
while ($row = mysqli_fetch_assoc($res)){
$name = $row["name"];
$ip = $row["content"];
$ttl = $row["ttl"];
?>
<tr>
<td><?=$name ?></td>
<td><?=$ip ?></td>
<td>Off</td>
<td><?=$ttl ?><td>
</tr>
<?php
}
?>
</table>