[英]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.