Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP bind_param在MySQli中不起作用_Php_Mysqli - Fatal编程技术网

PHP bind_param在MySQli中不起作用

PHP bind_param在MySQli中不起作用,php,mysqli,Php,Mysqli,我有一个错误: 对非对象调用成员函数bind_param 在第15行的/home/ccraft50/public_html/C-Blog/InsertDataPosts.php中 你的准备失败了。尝试添加一些测试以确保其准备正确。你准备好了吗 你用错了数据库 数据库必须由表组成,每个表包含多行。显然,您希望为每个文件创建一个不同的表。相反,您必须将所有文件存储在一个表中,添加一个文件名作为字段,而不是表名 $stmt = $dbconn2->prepare("INSERT INTO fil

我有一个错误:

对非对象调用成员函数bind_param 在第15行的/home/ccraft50/public_html/C-Blog/InsertDataPosts.php中


你的准备失败了。尝试添加一些测试以确保其准备正确。你准备好了吗


你用错了数据库

数据库必须由表组成,每个表包含多行。显然,您希望为每个文件创建一个不同的表。相反,您必须将所有文件存储在一个表中,添加一个文件名作为字段,而不是表名

$stmt = $dbconn2->prepare("INSERT INTO files (SubjectName, IndexData) VALUES (?, ?)");
$stmt->bind_param('ss', $_POST['filename'], $_POST['comment']);
$stmt->execute();
echo "Successfuly Insert data for index!";
请注意,第二次准备相同查询的代码的第二部分毫无意义。要测试插入是否成功,必须在新建mysqli之前添加此行:


如果insert失败,它将抛出一个错误。

我猜您的查询失败了;回显以查看其外观-您正在进行大量处理以确保表名正确,我怀疑出现了问题。$InIndexData?如果您确实必须这样做,我对此表示怀疑,请参见下面的答案,您应该使用白名单而不是黑名单中的字符作为表名;一个试图访问你的系统的黑客可能想到的字符比你能想到的黑名单上的要多。好吧,我试试看。这种代码毫无意义。当prepare失败时,它将返回一个false。因此,如果这是问题所在,它是可以工作的。在继续之前,我总是在我的代码中测试prepare的返回。必须避免出现错误。它们必须被揭示和修复。测试不是一种权宜之计。你能给出一个这样做不会暴露错误的原因吗?你能给出一个这样做的原因吗?这只是一个打字错误。非常感谢你帮助我!:抱歉@Your Common Sense我无意中发布/询问了我的旧主题:DIt不是一个旧主题,但您仍在使用的方法。创建这么多表绝对没有意义。您应该更改代码,使其仅使用一个表。例如:从文件中选择*,其中TBL\u NAME=TBL\u NAME;
if($insIndexData !== false)
{
    etc...
$stmt = $dbconn2->prepare("INSERT INTO files (SubjectName, IndexData) VALUES (?, ?)");
$stmt->bind_param('ss', $_POST['filename'], $_POST['comment']);
$stmt->execute();
echo "Successfuly Insert data for index!";
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);