为什么代码不起作用?

时间:2015-11-30 11:32:13

标签: php

问题出在MySQL连接和查询部分(第一部分工作):

<?php
$param=$_GET['m'];
$param=str_replace("-", " ", $param);
$param=ucwords($param); 
echo $param; 
$host="localhost";
$username="user_name";
$password="password_here";
$database_name="database_name_here";
$link=mysqli_connect('host','username','password','database_name');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query=$mysqli_query($link, "SELECT column_name FROM table_name WHERE another_column_name='$param'");
echo $query; 
mysqli_close($link);
?>

我收到以下错误:

  

“连接失败:未知的MySQL服务器主机'主机'(20)”

...根据PhpCodeChecker.com,代码是正确的。

感谢。

4 个答案:

答案 0 :(得分:0)

这一行

$link=mysqli_connect('host','username','password','database_name');

应该是:

 $link=mysqli_connect($host,$username$,$password,$database_name);

答案 1 :(得分:0)

将您的连接线更改为

$link=mysqli_connect($host, $username, $password, $database_name);

使用$ username,$ password,$ database_name。

的实际连接名称

答案 2 :(得分:0)

更改连接语句,如下所示:

 $link=mysqli_connect($host,$username$,$password,$database_name);

Ansd也改变了这样的mysql查询执行。删除 $

$query=mysqli_query($link, "SELECT column_name FROM table_name WHERE another_column_name='$param'"); // bad practice

使用bind param而不是直接在查询中使用参数。试试这个:

$stmt = $link->prepare("SELECT column_name FROM table_name WHERE another_column_name= ?");
$stmt->bind_param('s', $param);

/* execute prepared statement */
$stmt->execute();

答案 3 :(得分:0)

而不是使用:

$link = mysqli_connect('host', 'username', 'password', 'database_name');

你应该使用

$link = mysqli_connect($host, $username, $password, $database_name);

另请确保$host$username$password$database_name设置正确的值。

祝你好运