3

我一直使用 PDO 语句,但由于某种原因,我无法说服服务器人员为 php 安装 PDO,但我确实有 MySQLi,我不知道我做错了什么,我没有收到连接错误而且无论我如何尝试输出一个查询错误,我都不会收到查询错误。这就是我正在做的事情。

include 'MySQLiConnect.php';

if($stmt = $mysqli->prepare("SELECT * FROM zipCodeTable WHERE zip_code = ?")){

    $stmt->bind_param("s", '07110');

    $stmt->execute();

    $stmt->bind_result($resultsArray);

    $stmt->fetch();

    foreach($resultsArray as $columnData){

        $matchingZipcode = $columnData['zip_code'];
        $matchingTimezone = $columnData['time_zone'];
    }       

    $stmt->close();


}

echo $matchingZipcode.', '.$matchingTimezone;

这基本上只是为了确认用户的邮政编码,以前从未使用过 MySQLi 准备好的语句,我尝试直接从手册中进行操作,不知道我做错了什么。感谢您抽出时间来阅读。

4

1 回答 1

3

您正在尝试“绑定”文字字符串。你不能这样做。您必须绑定一个变量。

改变

$stmt->bind_param("s", '07110');

$string = '07110';

$stmt->bind_param("s", $string);

此外,当您绑定结果时,您必须为返回的每个字段提供一个变量。

例如:

$stmt->bind_result($zipCode, $timeZone);

这在使用SELECT *. 您可能有兴趣查看此评论以了解您可能想要如何去做:http ://www.php.net/manual/en/mysqli-stmt.bind-result.php#85470

于 2013-02-09T19:29:30.680 回答