duandian4501 2017-01-27 12:47
浏览 55
已采纳

MySQL PDO准备语句

I'm trying out PHP and struggling with prepared statements. I've got the following code

<?php
require_once 'dbconfig.php';


try {
   $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
   echo "Connected to $dbname at $host successfully.";
} catch (PDOException $pe) {
   die("Could not connect to the database $dbname :" . $pe->getMessage());
}

$statement = $conn->prepare("SELECT * FROM voicemessages WHERE dir = :dir");
$statement->bindParam("dir", "test");

$statement->execute();
$statement->setFetchMode(PDO::FETCH_ASSOC);
?>

But getting the following error:

Connected to voicemail1 at 192.168.1.121 successfully.
Warning: main(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'UTC' for 'GMT/0.0/no DST' instead in /var/lib/asterisk/agi-bin/KesherVoicemail.php on line 13

Fatal error: Cannot pass parameter 2 by reference in /var/lib/asterisk/agi-bin/MyScript.php on line 13

Line 13 is the bindParam line.

Please can someone explain what is wrong?

  • 写回答

2条回答 默认 最新

  • doushi8231 2017-01-27 12:51
    关注

    You need to pass parameter 2 by reference to the bindParam function.

    Replace this-

    $statement->bindParam("dir", "test");
    

    with this-

    $test = "test";
    $statement->bindParam(":dir", $test);
    

    Check out the doc

    variable: Name of the PHP variable to bind to the SQL statement parameter.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)