我有一个PHP网站,我在000webhost上传。它需要一个数据库来存储数据。但是当我尝试登录时它没有登录。当我检查连接时,结果证明连接正常。仍然无法访问数据库。所以我写了一个小脚本来检查数据库访问,但它失败了。我有一张名为歌曲的桌子,其中包含一些歌曲。
这是脚本:
<?php
ob_start();
session_start();
$host = 'localhost';
$user = 'xxxxxxx';
$pass = 'xxxxxxx';
$db = 'xxxxxxx';
$timezone = date_default_timezone_set("Asia/Kolkata");
$con = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
if($con)
{
echo "Connection success";
$query = mysqli_query($con, "SELECT * FROM songs");
if($query){
$tb = mysqli_fetch_array($query);
print_r($tb);
}
else {
echo " failed db access";
}
}
else {
echo " connection failed";
}
?>
出于安全原因,细节已隐藏。 上面的脚本给出了以下输出:
Connection success failed db access
答案 0 :(得分:0)
您展示的输出具有误导性,failed db access
。根据下面的代码,数据库已成功连接,并且您正在执行查询,它似乎没有执行,并且流向else
块。
if($query){
// your code
}
else {
echo " failed db access";
}
你需要检查,
<强> ==更新== 强>
正如我之前提到的,用户可能没有足够的权限来访问songs
表。要GRANT
访问,您需要执行以下SQL
GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost; WITH GRANT OPTION;
答案 1 :(得分:0)
它不起作用,因为您使用PDO
进行连接并使用mysqli
进行查询。更改与mysqli的连接
$con = new mysqli($servername, $username, $password, $dbname);
或将您的查询更改为PDO
$query = $con->query("SELECT * FROM songs");