在程序上使用 mysqli
时遇到问题这里的功能是:
db.php中
<?php
define("DB_HOST", "host");
define("DB_LOGIN", "login");
define("DB_PASSWORD", "password");
define("DB_NAME", "myDb");
$link = mysqli_connect(DB_HOST, DB_LOGIN, DB_PASSWORD, DB_NAME);
if(!$link) {
echo 'ERROR: ' . mysqli_connect_errno() . ': ' . mysqli_connect_error();
}
?>
function.php
<?php
function addItemToCatalog($var1, $var2, $var3, $var4) {
$sql = 'INSERT INTO catalog (var1, var2, var3, var4)
VALUES (?, ?, ?, ?)';
if (!$stmt = mysqli_prepare($link, $sql)){
return false;
}
mysqli_stmt_bind_param($stmt, "ssii", $var1, $var2, $var3, $var4);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
return true;
}
?>
page.php文件
<?php
require_once ("db.php");
require_once ("function.php");
$var1 = $_POST['var1']; //showing without filtering methods
$var2 = $_POST['var2'];
$var3 = $_POST['var3'];
$var4 = $_POST['var4'];
if(!addItemToCatalog($var1, $var2, $var3, $var4)){
echo 'some error text';
}
else {
header("Location: success.php");
exit;
}
?>
使用它之后
警告:mysqli_prepare()要求参数1为mysqli,在第5行的 function.php 中给出null。
任何?
答案 0 :(得分:1)
由于在db.php中定义了$link
,你应该
require db.php;
在function.php文件中
答案 1 :(得分:0)
将两个文件db.php
和function.php
粘合在一起的方式我认为$link
的结果被定义为全局变量 - 您需要使用global
来访问它功能内:
function addItemToCatalog($var1, $var2, $var3, $var4) {
global $link;
...
}
或通过参数显式地将$link
提供给函数:
function addItemToCatalog($var1, $var2, $var3, $var4, $link) {
...
}
答案 2 :(得分:-3)
for(int i = 0; i < 921600 / 2; i++)
{
if(arr[i] > 240) counter++;
}
for(int j = 921600 / 2; j < 921600; j++)
{
if(arr[j] > 240) counter++;
}