簡體   English   中英

查詢工作在MySQL中的PHP失敗

[英]query works in mysql fails in php

我是php的新手,一直在嘗試將我的mysql數據庫表顯示在網頁上。 我一直在研究w3schools教程,但無法超越此選擇數據部分(我問的原因不是因為有教程,而是因為我正在從事課堂作業)。

連接工作良好,但查詢始終返回NULL。 該查詢過去更具體,但現在我正試圖顯示任何內容。

在mysql中:

describe members

回報

+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| Name       | varchar(30) | YES  |     | NULL    |       |
| Type       | varchar(20) | YES  |     | NULL    |       |
| State      | char(2)     | YES  |     | NULL    |       |
| Price      | int(11)     | YES  |     | NULL    |       |
| Experience | int(11)     | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

-

select * from members;

返回(顯然不顯示2萬行):

20000 rows in set (0.05 sec)

在PHP中:

<?php
    $conn = mysql_connect("127.0.0.1:3306", "root", "NotPostingOnSO", "coaches");

    if(!$conn) {
            die("Connection failed");
    }


    $result = mysql_query($conn, "SELECT Name FROM members");
    echo "vardump is: <br>";
    var_dump($result);

    mysql_close($conn);
?>

無論我做什么,vardump都會返回NULL ...

注意:我了解mysql_ *及其不贊成使用的方法,但是當我使用mysqli_connect時連接失敗...該網站甚至在一周內都無法啟動,我只需要幫助我的數據庫就可以在php中顯示為表格(結束目標)

請參閱http://45.55.175.147/findCoach.php上的vardump,其中顯示錯誤為Invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE 1=1' at line 1請參閱附錄A。 Invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE 1=1' at line 1

堆棧是來自digitalocean啟動說明的Ubuntu 14.04,Apache2,PHP,與MySQL相同

更新:

我將mysql_connect更改為mysqli_connect為:

 $conn = mysqli_connect("127.0.0.1:3306", "root", "Hydro1$", "coaches");

            if(!$conn) {
                    echo "Error: Unable to connect to MySQL." . PHP_EOL;
                    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
                    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
                    exit;
            }

這將返回錯誤:
錯誤:無法連接到MySQL。 調試errno:2005調試錯誤:未知的MySQL服務器主機'127.0.0.1:3306'(11)

使用mysql更新(不是mysqli)恢復為mysql_connect和固定語法,因此查詢為:

$result = mysql_query("SELECT Name FROM members");

vardump現在返回bool(false); 我覺得這更近了,但是bool(false)並不意味着表成員沒有行嗎?

更新

如您的錯誤所指出,將127.0.0.1:3306更改為簡單的localhost 您通常不需要包含端口,因為mysql配置已定義該端口。


正如Fred所說 ,您沒有使用mysqli_

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

$query = mysqli_query($link, "SELECT Name FROM members");
if(!$query){
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

print_r(mysqli_fetch_array($query,MYSQLI_ASSOC));

上面的代碼可以清除,但是您應該對所有代碼進行調試,以確保沒有編寫錯誤填充的代碼。


雖然,如果您正在處理它,那么最好還是學習OO Mysqli方式甚至PDO。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM