用php查询数据库

用php查询数据库,php,mysql,sql,Php,Mysql,Sql,我试图使用php查询我的数据库,然后显示查询结果。对于本例,我只需要MySQL数据库中的元素数 我的代码是: <?php print("This is just a test"); print("This is another test"); // Create connection $con=mysqli_connect("mysql.netsons.com","****","****","****"); // Check connection

我试图使用php查询我的数据库,然后显示查询结果。对于本例,我只需要MySQL数据库中的元素数

我的代码是:

<?php
    print("This is just a test");
    print("This is another test");
    // Create connection
    $con=mysqli_connect("mysql.netsons.com","****","****","****");

    // Check connection
    if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    print("A third test");

    $result = mysqli_query($con, "SELECT COUNT(*) FROM MyGames");
    echo $result;
    echo mysqli_fetch_array($result);
    print("A forth test");
    mysqli_close($con);
?>

我做错了什么?

mysql\u fetch\u array
fetches。。。数组

$row = mysqli_fetch_array($result);
echo $row["COUNT(*)"];
我认为最好也将该列别名为:

SELECT COUNT(*) AS count FROM MyGames
...
echo $row['count'];

我建议使用一种不同的查询方法,这种方法更安全(据我所知,不需要担心SQL注入),而且可以节省大量的时间和空间

首先,您需要创建一个mysqli对象

$stateConnect = new mysqli("localhost", "root", "PASS", "DBTable");
这与
mysqli\u connect
mysqli\u select\u db

然后要定义SQL查询

$sql = "SELECT `userVotes` FROM `users` WHERE `userEmail`=?";
接下来,您要创建一个名为语句的变量,并将SQL“附加到它”

请注意,在我的SQL中,我没有直接输入userEmail所需的值,而是输入了一个“?”。这是一个变量,我们将在后面定义它(但是它始终是一个“?”
要定义这个变量,我们需要使用

$statement->bind_param('s', $SESSION['email']);
这将
$SESSION['email']
绑定到第一个问号,
s
表示第一个问号将是一个字符串。假设我们必须更改:

$sql = "SELECT `userVotes` FROM `users` WHERE `userEmail`=? AND `userName`=?";
然后,我们将使用:

$statement->bind_param('ss', $SESSION['email'], "USERNAME");
每个s表示一个问号,其后的每个值表示一个问号。
现在我们必须使用执行查询

$statement->execute();
如果我们希望返回一个结果,那么我们必须使用

$statement->bind_result($userVotesText);
要将结果绑定到一个变量,如果我希望得到一列结果,我需要在其中放入第二个变量。
现在设置我们需要使用的变量

if($statement->fetch()){
    $userVotesResult = userVotesText;
}

此方法比其他查询数据库的方法好得多,称为

echo$result;
不起作用,因为如果查询成功,
$result
是一个对象,如果查询不成功,则布尔值
false
。在调用
mysqli\u query()
后发布此命令的输出:
echo mysqli\u error($con)
如果你想知道一个可能是数组或布尔值的变量的信息,echo将不起作用-试试var_dump。@EdCottrell在第四个print get display中做了更改。好的,这一个解决了它:$row=mysqli_fetch_array($result);echo$row[“COUNT(*)”;但我不确定我是否完全理解如何做。那么,究竟包含$row?
$statement->bind_result($userVotesText);
if($statement->fetch()){
    $userVotesResult = userVotesText;
}