2017-08-04 75 views
0

- 固定 -無法連接到PHP中的MySQLi?

我修正了我遇到的問題。我不是100%確定它是如何修復的,但我認爲這是因爲我將連接端口更改爲3306,然後使用本地主機而不是我的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 $連接時,它也是如此。我認爲這是連接問題,因爲它是空的,但你們最清楚(我是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(); 

而且似乎工作,除了它打印「0結果」時,有1

+0

'$ query'是一個結果對象(或者也可能檢查執行中的錯誤),您需要獲取。 – chris85

+0

對不起,但你是什麼意思? @ chris85 – Josh

+0

請參閱http://php.net/manual/en/mysqli-stmt.fetch.php和http://php.net/manual/en/mysqli.query.php關於後者的具體說明'在失敗時返回FALSE 。對於成功的SELECT,SHOW,DESCRIBE或EXPLAIN查詢,mysqli_query()將返回一個mysqli_result對象。對於其他成功的查詢,mysqli_query()將返回TRUE.',所以你要麼有'false','true'或'result object'。 – chris85

回答

0
enter code here 
<?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'; 
     ?> 

執行此操作並告訴我輸出。

+0

'連接失敗:連接被拒絕' – Josh

+0

這意味着連接字符串出錯。你在本地服務器上工作還是什麼? – Jok3r

-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()); 
+0

'Mysqli conn。錯誤:2002'(抱歉有點遲了回覆) – Josh

0

對於成功的SELECT,SHOW,描述或解釋查詢的mysqli ::查詢(或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。)。如果您可以從外部訪問數據庫服務器,請諮詢您的託管公司。

+0

我發現這不是查詢給我的問題,但它是連接。我會更新帖子。 – Josh

+0

檢查可用於遠程訪問的數據庫服務器(104.236。***。57)。如果您可以從外部訪問數據庫服務器,請諮詢您的託管公司。 –

+0

我發現了錯誤,但我不知道如何解決它。錯誤是:連接被拒絕(2002) – Josh

0

您可以檢查Mysql是否正在運行。它通常發生在你的液滴耗盡內存時。在這種情況下,你可以添加一個交換文件到你的液滴。

+0

我如何檢查如果MySQL運行@Sam – Josh

+0

你可以執行以下命令..#中mysqladmin -u根-p狀態 – Sam

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

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


       try this instead of your code 
      good luck!!!!