我有Ubuntu 16.10 x86_64 x86_64。我安装了LAMP以在PHP中编程并创建数据库。在我的php程序中,我想连接到我的本地数据库,用于创建一个包含表格任何行数据的表格(用HTML格式)。 问题是当我通过firefox打开php文件(localhost / file.php)时,浏览器不会收取任何费用。如果在与数据库连接期间出现错误,它将在浏览器中打印出一些内容。 代码如下:
<!DOCTYPE html>
<html>
<head><title> SQL & PHP </title></head>
<body>
<?php
$db = mysql_connect("localhost", "root", "password")
or die ("Non riesco a creare la connessione");
mysql_select_db("scuola")
or die ("Non trovo il DB");
$sql = "SELECT id_utente, nome_utente, password_utente, conta_pres FROM utenti WHERE conta_pres <> 0";
$ris = mysql_query($sql) or die ("Query fallita!");
echo "<TABLE><TR><TH>ID utente <TH> Nome utente <TH>Password<TH>Contatore visite</TR>";
while ($riga= mysql_fetch_array($ris))
{
echo ("<TR>");
echo "<TD>" . $riga["id_utente"];
echo "<TD>" . $riga["nome_utente"];
echo "<TD>" . $riga["password_utente"];
echo "<TD>" . $riga["conta_pres"];
}
mysql_close();
?>
</body>
</html>
我检查了代码的语法(使用网站)并且没有问题,即使是因为我用书复制了这个。我读到mysql_connect已被弃用,所以我用新的mysqli_connect替换它,但错误仍然存在:白页。我尝试将2个echo,一个在连接函数之前,一个在之后。屏幕上仅打印第一个回声。我试着输入终端sudo apt-get install php5-mysql,但是有一个错误: “php5-mysql”数据包尚未运行
有人可以帮助我吗?
答案 0 :(得分:1)
首先使用mysqli
代替mysql
。
我想我发现了这个问题。当您致电mysqli_select_db
时,它需要2个参数,您只需指定一个参数。即使您已设置$db
数据库连接,也需要指定要从中选择数据库名称的数据库。
所以mysqli_select_db($db, "scuola")
应该这样做。
在底部关闭连接,指定要关闭的连接。在您的情况下,它是:mysqli_close($db);
<!DOCTYPE html>
<html>
<head><title> SQL & PHP </title></head>
<body>
<?php
$db = mysqli_connect("localhost", "root", "password")
or die ("Non riesco a creare la connessione");
mysqli_select_db($db, "scuola") // see this line
or die ("Non trovo il DB");
$sql = "SELECT id_utente, nome_utente, password_utente, conta_pres FROM utenti WHERE conta_pres <> 0";
$ris = mysql_query($sql) or die ("Query fallita!");
echo "<TABLE><TR><TH>ID utente <TH> Nome utente <TH>Password<TH>Contatore visite</TR>";
while ($riga= mysql_fetch_array($ris))
{
echo ("<TR>");
echo "<TD>" . $riga["id_utente"];
echo "<TD>" . $riga["nome_utente"];
echo "<TD>" . $riga["password_utente"];
echo "<TD>" . $riga["conta_pres"];
}
mysqli_close($db); // see this line
?>
</body>
</html>