Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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 mysqli语句execute()不工作_Php_Mysqli_Insert_Xampp_Prepared Statement - Fatal编程技术网

PHP mysqli语句execute()不工作

PHP mysqli语句execute()不工作,php,mysqli,insert,xampp,prepared-statement,Php,Mysqli,Insert,Xampp,Prepared Statement,我在stackoverflow.com上找不到同样的东西,所以我把我的问题贴出来,希望有人知道我的代码或我正在使用的东西有什么问题 在我开始之前:在我的高效Web空间上,相同的代码可以工作,问题在于我的本地开发服务器的xampp安装。。。叹息 我有一个小小的网络应用程序,让我和我的家人记录在家里的工作(例如清空垃圾箱),这样我们就可以根据孩子们自己做了多少来给他们发钱(他们不用做作业就可以得到零花钱的一点奖励) 在my db表中插入一行的代码是: function AddGarbEntry($D

我在stackoverflow.com上找不到同样的东西,所以我把我的问题贴出来,希望有人知道我的代码或我正在使用的东西有什么问题

在我开始之前:在我的高效Web空间上,相同的代码可以工作,问题在于我的本地开发服务器的xampp安装。。。叹息

我有一个小小的网络应用程序,让我和我的家人记录在家里的工作(例如清空垃圾箱),这样我们就可以根据孩子们自己做了多少来给他们发钱(他们不用做作业就可以得到零花钱的一点奖励)

在my db表中插入一行的代码是:

function AddGarbEntry($DBConnection, $DBPrefix, $UserID, $GarbID)
{
    $stmt = $DBConnection->prepare("INSERT INTO t_".$DBPrefix."_entries (idUsers,idGarbType) VALUES (?,?)");
    $stmt->bind_param("ii", $UserID, $GarbID);
    $stmt->execute();
    $stmt->close();
}
脚本中我调用此函数的部分是:

$con = new mysqli($_SESSION["DBHost"], $_SESSION["DBUsername"], $_SESSION["DBPassword"], $_SESSION["Database"]);
AddGarbEntry($con, $DBPrefix, $_POST["user"], $_POST["garbagetype"]);
$con->close();
我已经检查了会话变量(它们都填充了正确的值)和POST值(它们也填充了正确的值)

在我的MySQL日志中,a可以找到以下行:

170423 11:54:38    66 Connect   rldmla_1@localhost as anonymous on rldmla_db1
           66 Prepare   INSERT INTO t_garb_entries (idUsers,idGarbType) VALUES (? , ?)
           66 Close stmt    
           66 Quit  
因此,我可以看到prepare正在工作,但没有迹象表明我的testserver运行execute()-命令。php、apache和mysql的错误日志中没有这方面的条目

奇怪的是,如果我使用我网站的特定功能来更新已经存在的行(也是准备好的语句,但是是更新语句),我的插入代码会正常工作大约两次,之后它会停止工作,直到我再次更新我的表

我尝试过xampp的实际版本(7.1.x)和旧版本(7.0.15),但问题是相同的。Xampp在运行Windows Server 2012的x64计算机上以x86版本运行。我只安装了Apache、PHP和MySQL模块

我不知道我做错了什么。感谢您的帮助


你好,罗尼。。。。现在我有了线索:

我将Xampp安装更改为基于linux的虚拟机,在那里我安装了Apache、PHP、MySQL和phpMyAdmin。之后,MySql日志文件中出现了缺少的执行行

所以,这里没什么可做的了

谢谢大家支持我:)


你好,罗尼

做了
$stmt->error返回什么?您可能不应该在会话中存储数据库信息,尤其是密码不应该存在。使用包含定义的文件或从中解析的配置。您可以检查上一条语句中是否出现错误。使用此
printf(“错误:%s.\N”,$stmt->Error)在执行
后立即执行
。我尝试了,但stmt->error为空:(