php - mysqli的php函数
问题描述
这是我的 fonction.php :
<?php
function connect(){
$servername = "localhost";
$username = "xxx";
$password = "xxxx";
$dbname = "xxx";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
}
?>
但是当我想调用此函数时,它不适用于我的代码:
<?php
include("fonctions.php");
?>
<html>
<form name="inscription" method="post" action="form.php">
xxx : <input type="text" name="xxx"/> <br/>
xxx: <input type="text" name="xxx"<br/>
<input type="submit" name="valider" value="OK"/>
</form>
<?php
if (isset ($_POST['valider'])){
$titre=$_POST['xxx'];
$auteur=$_POST['xxx'];
connect();
$sql = 'INSERT INTO xxx (`xxx`, `xxx`) VALUES("'.$xxx.'","'.$xxx.'")';
}
?>
</body>
</html>
在我使用 mysql_connect 之前它更简单,我的功能是这样的:
<?php
function connect(){
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('MaBase', $base) ;
}
?>
用我的 mysql 参数创建一个好的包含的最佳方法是什么?感谢大家的帮助。
解决方案
在 SQL 语句中使用变量时,包括有关使用 PDO 或 mysqli 和准备好的语句的强制性声明......
您没有向函数传递要使用的 SQL 语句,也没有$sql
在函数中定义。
function connect($sql){
用于定义它,然后调用它
$sql_statement="select foo from bar where bee=1";
$res=connect($sql_statement);
您还需要您的函数来返回某种值。
我所做的是创建一个通用函数,它接受一条 SQL 语句和一个位置参数数组,然后该函数使用 PDO 和准备好的语句使用参数执行查询,然后返回一个包含适当数据的数组。$ret[0] 是一个表示成功的布尔值,如果为假,则 [2..N] 包含错误消息,如果为真,则 [2..N] 包含选择的返回记录集,数量插入语句的更新、删除和 last_insert_id 受影响的行(通过在查询字符串上使用正则表达式检测)
这是一次编写的,require_once()
用于我工作的大学的 15 个网络应用程序。
推荐阅读
- php - 在具有相同链接的所有文件夹中包含一个文件
- python - 使用 BeautifulSoup 从谷歌学者中抓取网页
- javascript - 访问函数之外的变量值的问题
- html - 图片元素不根据屏幕宽度调整图像大小
- c++ - 使用 openssl 1.1 链接到动态库时出现 EVP_MD_CTX_destroy 段错误
- mongodb - 在 null 上调用成员函数 beginTransaction()
- python - python中字典的调用范围
- angular - 请求堆栈未在 Angular 拦截器中发送新 cookie
- docker - standard_init_linux.go:207:exec 用户进程导致“exec 格式错误”-Raspberry Pi 4
- c++ - 在 C++ 中从文件中读取