【发布时间】:2016-03-12 19:06:39
【问题描述】:
我是 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
stack 是 Ubuntu 14.04, Apache2, PHP from instructions on digitalocean startup 和 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) 不意味着表成员没有行吗?
【问题讨论】:
-
打印实际的 mysql 错误(来自文档的示例)
<?php $result = mysql_query('SELECT * WHERE 1=1'); if (!$result) { die('Invalid query: ' . mysql_error()); } ?> -
简单:你使用的是mysqli_语法
-
@pvg 我试过你的行,但它返回你给我的 sn-p 的语法错误
-
@Fred,您能建议如何正确执行此操作吗?我试过了: $result = $conn->query("query here");来自 w3schools,但它返回错误。有没有一种程序性的方式来代替这种面向对象的方式?或者这就是mysql的样子?我将重新运行以告诉您执行 conn->query() 时的错误是什么