PHP: 无法在同一页面中多次 运行 相同的 MySQL 查询
PHP: Unable to run same MySQL queries multiple times in same page
我有一个简单的 MySQL 查询,旨在从 MySQL 数据库中获取单个值:
$cr = 'copyright';
$stmt = $con->prepare("SELECT ${_COOKIE['lang']} FROM lang WHERE page = ?");
$stmt->bind_param("s", $cr);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$copyright = $result;
我有另一个简单的 MySQL 查询,用于从同一数据库中的相同 table 获取不同的单个值:
$cb = 'contactblurb';
$stmt = $con->prepare("SELECT ${_COOKIE['lang']} FROM lang WHERE page = ?");
$stmt->bind_param("s", $cb);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$blurb = $result;
它们彼此独立工作并检索所需的数据。然而,当一个接一个地放置时,像这样...
$cr = 'copyright';
$stmt = $con->prepare("SELECT ${_COOKIE['lang']} FROM lang WHERE page = ?");
$stmt->bind_param("s", $cr);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$copyright = $result;
$cb = 'contactblurb';
$stmt = $con->prepare("SELECT ${_COOKIE['lang']} FROM lang WHERE page = ?");
$stmt->bind_param("s", $cb);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$blurb = $result;
第二个查询的第三行出现以下错误。
Uncaught Error: Call to a member function bind_param() on bool...
我错过了什么?我没有关闭两个查询之间的任何连接?有什么我想念的吗?
必须单独调用这些语句,因为一个是调用将在整个站点范围内使用的数据,另一个是仅针对特定页面。
Uncaught Error: Call to a member function bind_param() on bool...
听起来像 $con->prepare returns false。
https://www.php.net/manual/en/pdo.prepare.php
确保 $con->准备 returns 一个 PDOStatement 对象,它会起作用。
我试图在一页中准备两次相同的语句。我所要做的就是删除第二个准备语句,使代码如下:
// First statement
$cr = 'copyright';
$stmt = $con->prepare("SELECT ${_COOKIE['lang']} FROM lang WHERE page = ?");
$stmt->bind_param("s", $cr);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$copyright = $result;
// Second statement
$cb = 'contactblurb';
$stmt->bind_param("s", $cb);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$blurb = $result;
感谢@Blackbam 的提示!
我有一个简单的 MySQL 查询,旨在从 MySQL 数据库中获取单个值:
$cr = 'copyright';
$stmt = $con->prepare("SELECT ${_COOKIE['lang']} FROM lang WHERE page = ?");
$stmt->bind_param("s", $cr);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$copyright = $result;
我有另一个简单的 MySQL 查询,用于从同一数据库中的相同 table 获取不同的单个值:
$cb = 'contactblurb';
$stmt = $con->prepare("SELECT ${_COOKIE['lang']} FROM lang WHERE page = ?");
$stmt->bind_param("s", $cb);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$blurb = $result;
它们彼此独立工作并检索所需的数据。然而,当一个接一个地放置时,像这样...
$cr = 'copyright';
$stmt = $con->prepare("SELECT ${_COOKIE['lang']} FROM lang WHERE page = ?");
$stmt->bind_param("s", $cr);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$copyright = $result;
$cb = 'contactblurb';
$stmt = $con->prepare("SELECT ${_COOKIE['lang']} FROM lang WHERE page = ?");
$stmt->bind_param("s", $cb);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$blurb = $result;
第二个查询的第三行出现以下错误。
Uncaught Error: Call to a member function bind_param() on bool...
我错过了什么?我没有关闭两个查询之间的任何连接?有什么我想念的吗?
必须单独调用这些语句,因为一个是调用将在整个站点范围内使用的数据,另一个是仅针对特定页面。
Uncaught Error: Call to a member function bind_param() on bool...
听起来像 $con->prepare returns false。
https://www.php.net/manual/en/pdo.prepare.php
确保 $con->准备 returns 一个 PDOStatement 对象,它会起作用。
我试图在一页中准备两次相同的语句。我所要做的就是删除第二个准备语句,使代码如下:
// First statement
$cr = 'copyright';
$stmt = $con->prepare("SELECT ${_COOKIE['lang']} FROM lang WHERE page = ?");
$stmt->bind_param("s", $cr);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$copyright = $result;
// Second statement
$cb = 'contactblurb';
$stmt->bind_param("s", $cb);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$blurb = $result;
感谢@Blackbam 的提示!