我遇到了mysqli的问题。我们知道mysqli需要两个参数来执行。一个是“查询”,另一个是“php连接线代码”。现在,我想创建一个单独的连接文件,并希望在每个文件中包含“单独的连接文件”,这样我就不需要在每个文件中编写连接代码,或者如果我更改连接文件,所有文件都会得到更新
但在这种情况下,我不会在每个文件中都有连接行代码,所以我只有一个参数来执行mysqli查询,所以我将无法执行它。有什么建议?我忽略了代码,因为Stack-overflow.com对它有太多限制。
答案 0 :(得分:5)
Mark B
确实回答了这个问题,虽然他的答案是针对mysql的 - 这是不推荐使用的,不应该使用
顺便说一句是mysqli而不是mysquli
程序风格
假设连接文件是:
<强> conn.php
强>
<?php
$mysqli=mysqli_connect($host,$user,$password,$db);
if($mysqli_connect_error())
die('Connect Error');
?>
和另一个文件:
<强> other_file.php
强>
<?php
require 'conn.php';
$res=mysqli_query($mysqli,$query); #yes $mysqli is available here although it is in another file
?>
OOP风格
<强> conn.php
强>
<?php
$mysqli=new mysqli($host,$user,$password,$db);
if($mysqli->connect_error)
die('Connect Error');
?>
和另一个文件:
<强> other_file.php
强>
<?php
require 'conn.php';
$res=$mysqli->query($query);
?>
我在这里使用了普通的mysqli::query
和mysqli_query
(它们是相同的),但是
我也建议使用预准备语句而不是mysqli::query
,因为它对SQL注入更安全。
答案 1 :(得分:0)
简化的伪代码:
connection.php:
<?php
$con = mysql_connect(...) or die(mysql_error());
任何其他脚本:
<?php
require('connection.php');
$stmt = mysql_query("SELECT ...", $con);
require()
和include()
行为就是如果你真的削减&amp;将包含的文件粘贴到执行包含的文件中。
<?php
$con = mysql_connect();
mysql_query($sql, $con);
和
<?php
include('file_that_connects_to_mysql.php');
mysql_query($sql, $con);
只要文件存在并且可以包含/需要,就好像你将其内容直接填充到父文件中一样。