新手:用浏览器访问PHP+mysql失败
本帖最后由 arm_zwinger 于 2018-07-13 08:14 编辑新手,刚接触php+mysql。
平台:Apache:2.4/PHP:7.1/Mysql:8.0/OracleLinux:7
主要问题是在浏览器访问的时候,连不上mysql,还请各位指点,谢谢!
在网上找了一个小程序php+mysql的,问题是:
1. 在命令行下执行php + test.php的时候,没问题,可以返回结果
id: 1 - Name: aa bb id: 2 - Name: xx yy
2. 但是在浏览器里访问,浏览器显示“Connection failed 1: Permission denied,表示连接数据库失败。
代码片段如下:
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname,$port,$socket);
// Check connection
if ($conn->connect_error) {
die("Connection failed 1: " . $conn->connect_error); <-----这里没有连接上
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
上网搜搜,发现mysqli还区分面向过程和面向对象的调用方法,上面的是面向对象的,于是我又改成面向过程的,然后:
1. 在命令行中执行,还是OK的,结果如下:
array(3) {
["id"]=>
string(1) "1"
["firstname"]=>
string(2) "aa"
["lastname"]=>
string(2) "bb"
}
id: 2 - Name: xx yy
2. 在浏览器里执行,还是连接不上,显示"Connection failed 1: "
代码片段如下:
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed 1: " . $conn->connect_error); <----还是连不上
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
var_dump($row);
while($row = mysqli_fetch_array($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
mysqli_close($conn);
要在浏览器里访问,还需要什么额外的设置吗? 不需要啊,debian系列,只要安装php apache包加一个php mysql包就ok了 你最好先phpinfo()看看 2. 但是在浏览器里访问,浏览器显示“Connection failed 1: Permission denied,表示连接数据库失败。
这个是不是安全问题,你用root用户登陆mysql的
页:
[1]