首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php 5.6是否支持准备好的声明?

问php 5.6是否支持准备好的声明?
EN

Stack Overflow用户
提问于 2019-10-01 05:20:59
回答 2查看 1.1K关注 0票数 0

php 5.6是否支持准备好的声明?当我得到这个错误时:

"PHP致命错误:对资源上的成员函数准备()的调用“

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-01 08:42:59

是的,PHP5.6支持准备好的语句。MySQLi和PDO扩展都具有此功能。

您在这里使用的是mysql_* API,它已被废弃和删除。不要用它!切换到准备好的语句。

此外,PHP5.6不再受支持,您应该考虑尽快升级。

使用PDO编写的示例语句如下所示:

代码语言:javascript
复制
$dsn = "mysql:host=$host;dbname=$db;charset=utf8mb4";
$options = [
    \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
    \PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $user, $pass, $options);

$stmt = $pdo->prepare('select transaction_id from tbl_sales_revenue WHERE id=? limit 1');
$stmt->execute([$_POST['id']]);
$record = $stmt->fetch();

或者使用mysqli:

代码语言:javascript
复制
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli($host, $user, $pass, $db);
$mysqli->set_charset('utf8mb4');

$stmt = $mysqli->prepare('select transaction_id from tbl_sales_revenue WHERE id=? limit 1');
$stmt->bind_param('s', $_POST['id']);
$stmt->execute();
$record = $stmt->get_result()->fetch_assoc();
票数 2
EN

Stack Overflow用户

发布于 2019-10-01 07:02:27

如果要使用prepare()方法,则需要使用PDO类。

这里您可以找到一个关于如何连接到PDO的链接。切换到PDO之后,您可以使用prepare()语句。

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

https://stackoverflow.com/questions/58178477

复制
相关文章

相似问题

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