用PHP查询mysql数据库中的数据

时间:2015-10-30 20:14:03

标签: php html mysql database database-connection

我的本​​地计算机上有一个MySQL数据库,我正在尝试用PHP查询它。

我已写出以下HTML / PHP代码。当我在Chrome中打开此HTML文件时,会显示此内容。为什么浏览器会将此代码视为文本?

ID Project Code'; while ($row = mysqli_fetch_array($response)){ echo '' . $row[Id] . '' . $row[Project_Code] . ''; echo ''; } echo ''; } else { echo "couldn't connect do it"; echo mysqli_error($dbc); } mysqli_close($dbc); ?>

代码:

<HTML>
<body>
<?php
DEFINE ('DB_USER', 'root');
DEFINE ('DB_PASSWORD', 'root');
DEFINE ('DB_HOST', 'my_local_ip');
DEFINE ('DB_NAME', 'my_db');

$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
OR die("couldn't connect");
$query = "SELECT Id, Project_Code FROM database.projects";
$response = @mysqli_query($dbc, $query);

if ($response){
    echo '<table>
    <td>ID</TD>
    <td>Project Code</TD></table>';

    while ($row = mysqli_fetch_array($response)){
        echo '<tr><td>' . 
        $row[Id] . '</td></td>' .
        $row[Project_Code] . '</td></td>';

        echo '</tr>';

    }

    echo '</table>';
} else {
    echo "couldn't connect do it";
    echo mysqli_error($dbc);
}
mysqli_close($dbc);
?>
</BODY>
</HTML>

3 个答案:

答案 0 :(得分:2)

这是因为您没有使用apache/php/mysql运行代码。

如果您正在使用像wamp这样的Windows软件包将其放在www目录中并通过localhost访问它,而不是直接在浏览器中打开它,否则浏览器会将其视为普通的html。

当你打开chrome时,我打开了它:

enter image description here

您应该使用localhost访问您的脚本,并确保您的wamp(或您正在使用的任何服务器包)应该正在运行。

答案 1 :(得分:1)

PHP与javascript / HTML不同,它是一种服务器端语言。它在服务器上运行,并将生成的内容输出到浏览器。

所以例如

<?php 
if(empty($a)) {
echo ':)';
} else { 
echo ':(';
}
?>

进入浏览器的唯一部分是:)

您遇到的问题是

a)您的文件是.html。除非修改了服务器配置,否则PHP将不会这样运行 b)您的文件正在未安装PHP的本地计算机上执行。

解决方案:

a)在本地计算机上安装PHP; http://php.net/manual/en/install.php
b)移动到托管服务器(这可能更容易,因为他们将支持配置问题)

(与刻字问题无关的字母)

更具体地说,您的整个PHP代码将输出到浏览器,但

<?php
DEFINE ('DB_USER', 'root');
DEFINE ('DB_PASSWORD', 'root');
DEFINE ('DB_HOST', 'my_local_ip');
DEFINE ('DB_NAME', 'my_db');

$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
OR die("couldn't connect");
$query = "SELECT Id, Project_Code FROM database.projects";
$response = @mysqli_query($dbc, $query);

if ($response){
    echo '<table>

<?php的{​​{1}}之前,所有内容都被视为一个元素>

同时学习时尽量不要使用<table>。这可以抑制错误,而那些可能(95%的情况下)会对你有用。

答案 2 :(得分:0)

安装Apache,MySQL和PHP后 (您可以尝试其他答案中提到的XAMPP或WAMP。)
你可以测试这段代码:
(对于XAMPP,将您的代码放在xampp \ htdocs文件夹中,
像something.php这样的名字 跑步。浏览到localhost / something.php)

<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
DEFINE ('DB_USER', 'root');
DEFINE ('DB_PASSWORD', 'password');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME', 'database');

$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
OR die("couldn't connect");
$query = "SELECT Id, Project_Code FROM database.projects";
$response = mysqli_query($dbc, $query);
?>
<?php
if ($response){
    echo '<table>
    <td>ID</td>
    <td>Project Code</td>';
    while ($row = mysqli_fetch_array($response)){
        echo '<tr>'.'<td>'.$row['Id'].'</td><td>'.$row['Project_Code'].'</td></tr>';
    }
    echo '</table>';
} else {
    echo "couldn't connect do it";
    echo mysqli_error($dbc);
}
mysqli_close($dbc);
?>
</BODY>
</HTML>