PHP中的mysqli连接函数

时间:2014-11-13 05:44:31

标签: php mysql database mysqli

我刚刚开始研究 mysqli 。当我与数据库建立 mysqli 连接时,我遇到了函数问题。

我的代码:

$link=mysqli_connect("host", "user","password","database_name", true) or die ('I cannot connect to the database because: ' . mysqli_connect_error()); 

$query="CALL `database_name`.`table_name`('107','0100000000',63,122)";
  $result=mysqli_query($link,$query);
  $rs = mysqli_fetch_array($result);

$image = $rs['image'];
$title = $rs['title'];

echo $title;

mysqli_close($link);

当我在我的PHP代码中执行它时会抛出错误。

错误:

Can't connect to MySQL server on 'host_name' (110)

但是当我使用 mysql 扩展名时,它工作正常。请指导我在哪里做错了。

由于

4 个答案:

答案 0 :(得分:3)

“database_name”之后的下一个参数是“port”。

如果您将true计算结果为1,则表示您尝试连接到端口1(host_name:1)

删除true或将MySQL服务器的端口置于更改状态 (3306是MySQL的标准端口,不需要传递)

http://php.net/manual/de/mysqli.construct.php

答案 1 :(得分:2)

只需删除参数“TRUE”即可。如下所示,这不是必需的。

试试这个

$link = mysqli_connect('localhost', 'root', '');
    mysqli_select_db($link, 'database_name') or die ('I cannot connect to the database because: ' . mysqli_connect_error()); 

答案 2 :(得分:2)

mysqli_connect()中的第五个参数是端口号。

true评估为1且该端口不正确。只需删除此参数,因为它不是必需的 - 将使用默认值。

mysql_connect()中,第五个参数是'新链接',因此true是合适的。

由于您只是迁移到MySQLi,您可能需要阅读this answer,它将为您提供旧MySQL扩展的基本更改。


顺便说一句,当您使用语法声明新连接时,我想您可能想知道在使用mysqli时可以有多个连接。您所要做的就是将其设置为一个新变量,即;

$link1 = new mysqli($host,$username,$password,$database);
$link2 = new mysqli($host2,$username2,$password2,$database2);

然后您可以选择执行查询时使用的连接等。例如;

程序:

$result1 = mysqli_query($link1,$sql);

OO:

$result2 = $link2->query($sql);

答案 3 :(得分:1)

一种连接方式 -

连接语法:

mysqli_connect(host,username,password,dbname,port,socket);

实施例

//connection 
$con = mysqli_connect("myhostname","myusername","mypassw","mydatabase") or die("Error".mysqli_error($con)); 

//query
$query = "SELECT * FROM mytablename" or die("Error" . mysqli_error($con)); 

//execute 
$result = mysqli_query($con, $query);