我想要做的...是一个连接到sql server的简单脚本,从数据库中选取一些信息并将其发布在网站的小表中。我遇到的问题是,如果sql server脱机(它发生),那么它会在60秒内超时并显示错误。到那时,网站几分钟不可用。我想要做的是将超时值从60secs提供给示例2,如果失败,则显示类似"无法连接"的消息。 该脚本看起来像
<?php
$dbserver="[IP-ADDRESS]";
$dblogin="root";
$dbpass="[PASSWORD]";
$dbname="[DATABASENAME]";
mysql_connect($dbserver, $dblogin, $dbpass);
mysql_select_db($dbname);
mysql_query("SET NAMES 'utf8'");
$vypis = mysql_query("SELECT * FROM characters WHERE (accesslevel < '1') order by pkkills desc LIMIT 5");
echo '<table style="text-align: center; width: 220px;" border="0"><tr><td><center>Nick</center></td><td></td><td>Kills</td></tr>';
while($row = mysql_fetch_array($vypis))
{
echo '<tr><td><b><font color="white">';
echo $row["char_name"];
echo '</font></td><td> </td><td><font color="white">';
echo $row["pkkills"];
echo '</font></td></tr></b>';
echo '</table>';
?>
非常感谢任何帮助或提示。
答案 0 :(得分:0)
首先,请尝试避免使用IpRequestRate
,而是更喜欢使用PDO或mysqli,而正如Nytrix所说。
mysql
请注意,我在不需要时准备并执行了语句,但我认为显示prepare / execute语句非常重要,因为它被广泛使用,而且我发现它是一种更好的做法。有关更多信息,请参阅this stackoverflow question。
最后,我没有尝试,但我认为你在代码示例中输入了真实的密码,登录等,请考虑删除它!
PS:我认为你的问题不是连接速度慢,而是你的时间里缺少一个<?php
/*increase time to connect*/
ini_set('mysql.connect_timeout', 2);
$dbserver="foo_server";
$dblogin="root";
$dbpass="foo";
$dbname="foo2";
/* tries to connect, if it fails it echo 'could not connect to the database' */
try
{
$db = new PDO('mysql:host='.$dbserver.';dbname='.$dbname, $dblogin, $dbpass);
}
catch(Exception $e)
{
echo('Could not connect to the database');
}
$stmt = $db -> prepare("SELECT * FROM characters WHERE (accesslevel < '1') order by pkkills desc LIMIT 5");
$stmt -> execute(array());
/*or $stmt -> query("SELECT * FROM characters WHERE (accesslevel < '1') order by pkkills desc LIMIT 5"); */
echo '<table style="text-align: center; width: 220px;" border="0"><tr><td><center>Nick</center></td><td></td><td>Kills</td></tr>';
while($row = $stmt->fetch())
{
echo '<tr><td><b><font color="white">';
echo $row["char_name"];
echo '</font></td><td> </td><td><font color="white">';
echo $row["pkkills"];
echo '</font></td></tr></b>';
}
echo '</table>';
?>
括号。