gpt4 book ai didi

php - 为什么我的php绑定(bind)参数代码可以在wamp上运行,但在lnmp平台上不起作用

转载 作者:行者123 更新时间:2023-11-29 22:48:27 25 4
gpt4 key购买 nike

我的代码很简单,就是向mysql数据库提交一些数据。使用像 query() 这样的正常方式提交数据确实有效。代码在这里:

$con = new mysqli('127.0.0.1','xxx','xxx','xxx');
$con->query("SET NAMES 'utf8'");
$stmt=$con->prepare("INSERT INTO comments (Nickname, Content, Img) VALUES (?, ?, ?)");
$stmt->bind_param('sss', $nickname, $comments, $proc_comments);
$stmt->execute();

当我提交这个php网页时,它没有指出任何错误。我是一名大学生,专业不是计算机科学或其他相关学科。请帮助我。谢谢。

更新:下面的代码可以在lnmp平台上运行。

    $con = new mysqli('localhost','user','passwd','database_name');
$con->query("SET NAMES 'utf8'");
$stmt=$con->prepare("UPDATE comments SET Likes=Likes+1 WHERE Num=?");
$stmt->bind_param('i',$favor_num);
$stmt->execute();

最后更新:我尝试检查Nginx的错误日志,看看是否有我错过的错误,但它没有与这个奇怪的事情相关的任何问题。

最佳答案

可能有很多原因,但由于在不同的环境下会得到不同的结果,因此两个最可能的原因是:

  1. 您的 lnmp 平台未使用 mysqli 支持进行编译。通过创建一个名为“phpinfo.php”的页面进行检查,其中仅包含 <?php phpinfo();在里面。在浏览器中加载该页面,并确保有一个标题为“mysqli”的部分。阅读其描述并验证其是否存在。

  2. 您在 LNMP 上的连接数据不同。可能很简单,因为您的 LNMP 机器上的数据库名称、用户名和密码不同,需要重新配置。转到终端,然后输入 mysql -u <username> -p <databasename>然后,当提示验证时,您可以查询数据库(例如,执行 SHOW TABLES;SELECT * FROM comments 等)。如果您可以查询它,但无法从上面手动运行“INSERT INTO...”,那么您的用户已设置,但没有在该表上执行插入操作的正确权限。 Google 围绕 MySQL 提供了配置方面的帮助。

关于php - 为什么我的php绑定(bind)参数代码可以在wamp上运行,但在lnmp平台上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28988134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com