PHP mysqli语句execute()无效

时间:2017-04-23 10:32:06

标签: php mysqli insert xampp prepared-statement

我在stackoverflow.com上找不到相同的东西,所以我发布了我的问题,希望有人知道我的代码或我正在使用的东西有什么问题。

在我开始之前:在我高效的网站空间上,相同的代码可以正常运行,问题出在我本地开发服务器的xampp-installation上...... 叹息

我有一个小的网络应用程序供我的家人和我记录在家工作(例如清空垃圾箱),所以我们可以分钱给我们的孩子,这取决于他们自己做了多少钱(一点点奖励他们得到的零用钱没有作业)

在我的db-table中插入一行的代码是:

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();

我已经检查过Session-Variables(它们都填充了正确的值)和POST值(它们填充正确)。

在我的MySQL-Log中,我可以找到以下几行:

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  

所以,我可以看到,准备工作正常,但没有迹象表明我的testserver运行了execute() - Command。 php,apache和mysql的错误日志没有相关的条目。

奇怪的是,如果我使用我网站的特定功能更新现有的行(也是prepared-statement,但是更新语句),我的插入代码可以正常工作两次,之后就停止了工作直到我再次更新我的桌子。

我已经尝试过xampp(7.1.x)和旧版本(7.0.15)的实际版本,但问题是一样的。 Xampp在运行x64的Windows Server 2012-Machine上以x86版本运行。我只安装了Apache,PHP和MySQL模块。

我没有任何线索,我做错了什么。任何帮助表示赞赏。

问候,罗尼

1 个答案:

答案 0 :(得分:0)

Urks ....现在我已经得到了线索:

我将Xampp-Installation更改为基于linux的虚拟机,我已经安装了Apache,PHP,MySQL和phpMyAdmin。之后,缺少的执行行位于MySql-Logfile中。

所以,此处无处可做。

谢谢@all支持我:)

问候,罗尼