首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的php绑定param代码可以在wamp上运行,但是它不能在lnmp平台上运行

为什么我的php绑定param代码可以在wamp上运行,但是它不能在lnmp平台上运行
EN

Stack Overflow用户
提问于 2015-03-11 13:38:50
回答 2查看 95关注 0票数 0

我的代码是相当的simple.It是关于提交一些数据到mysql数据库。它确实可以使用正常的方式提交像query()这样的数据。代码在这里:

代码语言:javascript
复制
$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网页时,它没有指出任何错误。我是一个不主修CS或其他亲戚subjects.Please me.Thanks的大学生。

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

代码语言:javascript
复制
    $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的错误日志,看看是否有任何错误我错过了,但它没有任何问题,与这个奇怪的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-11 14:06:04

这可能有很多原因,但由于您在不同的环境中有不同的结果,最有可能的原因是:

  1. 您的lnmp平台不是通过mysqli支持编译的。通过创建一个名为“phpinfo.php”的页面进行检查,该页面中只有<?php phpinfo();。在浏览器中加载该页面,并确保有一个以“mysqli”为标题的部分。阅读它的描述并确认它在那里。
  2. 在LNMP上,连接数据是不同的。它可以很简单,因为数据库名称、用户名和密码在LNMP框中是不同的,需要重新配置。转到终端,然后输入mysql -u <username> -p <databasename>,然后在提示时验证您可以查询数据库(例如,执行SHOW TABLES;SELECT * FROM comments等)。如果您可以查询它,但不能手动运行“插入到.”从上面看,您的用户是安装的,但没有正确的权限对该表执行插入操作。谷歌周围的MySQL帮助配置这一点。
票数 0
EN

Stack Overflow用户

发布于 2015-03-13 08:28:55

这无疑是错误的:

代码语言:javascript
复制
$con->query("SET NAMES 'utf8'");

MySQL中的字符集不是表示为字符串,而是表示为文字:

代码语言:javascript
复制
$con->query("SET NAMES utf8");

因此,查询失败,字符集没有设置,因此您可能会遇到插入某些字符串的问题。但是,您应该首先使用mysqli API来开始:

代码语言:javascript
复制
$con->set_charset('utf8');

除此之外,还不清楚究竟什么“不起作用”,或者还有其他的陷阱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28988134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档