我是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;
返回(显然没有显示20k行):
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
堆栈是Ubuntu 14.04,Apache2,PHP来自digitalocean启动的指令,同样适用于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。调试错误:2005调试错误:未知MySQL服务器主机'127.0.0.1:3306'(11)
使用mysql(而不是mysqli)进行更新 恢复为mysql_connect并修复了语法,因此查询是;
$result = mysql_query("SELECT Name FROM members");
vardump现在返回bool(false); 我觉得这个更接近,但是不会bool(false)暗示表成员没有行?
答案 0 :(得分:1)
<强>更新强>
如您的错误指出,请将127.0.0.1:3306
更改为简单的localhost
。你通常不需要包含一个端口,因为mysql配置已经定义了它。
作为Fred said,您不应该使用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。