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