我使用数组参数创建了一个PDO对象和一个INSERT INTO查询,如下所示:

$pdo = new PDO('mysql:host=localhost;dbname=cluster', 'root', '');
if(!$pdo) {
    throw new PDOException("Failed connection!");
}

$qry = $pdo->prepare("INSERT INTO visitors_table(visitor_ip, visitor_browser,  visitor_hour,  visitor_minute,  visitor_day,  visitor_month,  visitor_year,  visitor_refferer,  visitor_page) "
    . "VALUES (:visitor_ip, :visitor_browser, :visitor_hour, :visitor_minute, :visitor_day, :visitor_month, :visitor:year, :visitor_refferer, :visitor_page)");

$arg = array(
    'visitor_ip' => $guest_ip,
    'visitor_browser' => $guest_browser,
    'visitor_hour' => date('H'),
    'visitor_minute' => date('i'),
    'visitor_day' => date('D'),
    'visitor_month' => date('M'),
    'visitor_year' => date('Y'),
    'visitor_refferer' => '',
    'visitor_page' => ''
);


但是如果我这样做

<?php if($qry->execute($arg) > 0): ?>
    Successful input!
<?php else: ?>
    Unsuccessful input!
<?php endif; ?>


我得到以下回应:


  警告:PDOStatement :: execute():SQLSTATE [HY093]:无效的参数编号:在第47行的C:\ xampp \ htdocs \ Cluster \ index.php中未定义参数
  输入失败!


我试图找到“缺失的参数”,但是一切为了我而接缝……我是盲目的错过了明显的东西还是还有其他东西吗?

附带的问题:对于PHP程序员来说,这是一种缩进和命名方式,您会发现它易读且易于遵循吗?

最佳答案

您有错别字:

$qry = $pdo->prepare("INSERT INTO visitors_table(visitor_ip, visitor_browser,
  visitor_hour,  visitor_minute,  visitor_day,  visitor_month,  visitor_year,
   visitor_refferer,  visitor_page) "
. "VALUES (:visitor_ip, :visitor_browser, :visitor_hour, :visitor_minute, :visitor_day,
   :visitor_month, :visitor_year, :visitor_refferer, :visitor_page)");
                           ^here

关于php - 执行PDO查询时出现错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32276268/

10-11 02:55
查看更多