我刚刚开始研究 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 扩展名时,它工作正常。请指导我在哪里做错了。
由于
答案 0 :(得分:3)
“database_name”之后的下一个参数是“port”。
如果您将true计算结果为1,则表示您尝试连接到端口1(host_name:1)
删除true或将MySQL服务器的端口置于更改状态 (3306是MySQL的标准端口,不需要传递)
答案 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);