在PHP中无法连接到MySQLi?

时间:2017-08-04 02:12:31

标签: php mysql mysqli

- 修复 -

我解决了我遇到的问题。我不是100%确定它是如何修复的,但我认为这是因为我将连接端口更改为3306然后使用localhost而不是我的ip连接。感谢所有花时间提供帮助的人,你们都非常乐于助人。

我有一个非常令人沮丧的问题,我在过去的4个小时里一直试图解决这个问题。我无法通过我的PHP代码连接到MySQLi。我查了一下,用户名,密码,数据库和主机都是正确的。这是我的代码:

$mysqli = new mysqli("104.236.***.57", "Josh", "********", "******");

if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

这一切都是echo Connected。查询不返回任何内容(它就像一个空字符串)。当我尝试回显$ connection时,它也是如此。我认为这是一个连接问题,因为它是空的,但你们都知道最好(我是MySQL的新手)。我已经研究并尝试了4个多小时的东西,但没有任何工作。

非常感谢你,

约什

编辑:我已经更新了代码。现在它返回错误:连接被拒绝(mysql错误)。

我认为我已经修复了连接问题,但我遇到了一个新问题,我认为可能与另一个问题有关。我在这里有这个代码:

$servername = "104.***.***.57";
$username = "Josh";
$password = "*******";
$dbname = "*****";

$conn = new mysqli($servername, $username, $password, $dbname, '/var/run/mysqld/mysqld.sock');
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT * FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"];
    }
} else {
    echo "0 results";
}
$conn->close();

它似乎有效,除了当它有1时打印'0结果'。

5 个答案:

答案 0 :(得分:0)

对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli :: query(或mysqli_query())将返回一个mysqli_result对象(参见本文mysqli.query)。 所以在你的情况下,你不能回应这个,你可以看到这样的行数据:

$mysqli = new mysqli("104.236.***.57", "Josh", "********", "******");

if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM users", MYSQLI_USE_RESULT)) {
    /* prints number of result rows */
    printf("Select returned %d rows.\n", $result->num_rows);
    /* Cycle through results */
    echo "Table data:\n";
    while ($row = $result->fetch_object()){
        var_dump($row);
    }
    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();

另外,检查可用于远程访问的数据库服务器(104.236。***。57)。如果您可以从外部访问数据库服务器,请咨询您的托管公司。

答案 1 :(得分:0)

<?php   
$servername = "localhost";  //replace your servername
$username = "root";   //replace your username
$password = "";        //replace your password
$dbname = "test";    //replace your database name

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
//Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
    echo ' not connected';
}
else
    echo 'connected';
?>

执行此操作并告诉我输出。

答案 2 :(得分:0)

请检查一下Mysql是否正在运行。它通常发生在你的液滴耗尽内存时。在这种情况下,您可以将交换文件添加到Droplet。

答案 3 :(得分:0)

$sql = "SELECT * FROM users";
$result = mysqli_query($conn,$sql);

while($row = mysqli_fetch_array($result))
{
   echo "id: " . $row["id"];
}

尝试使用此代码而不是代码。

答案 4 :(得分:-1)

//只需填写您自己的设置......

$server = "localhost"; 
$user   = "root"; 
$password = "*****"; 
$database = "uyelik";
$db= mysqli_connect($server ,$user, $password);
if(!$db) { echo 'Mysqli conn. error: ' . mysqli_connect_errno(); exit;}
mysqli_select_db($db,$database);
$query = mysqli_query($db,"SELECT * FROM lists") or die (mysql_error());