【问题标题】:Invalid parameter number in Php PDOPhp PDO 中的参数号无效
【发布时间】:2016-05-12 11:04:49
【问题描述】:

这是我的 php 代码

$data=array(
        'title'=>$_POST['title'],
        'description'=>$_POST['description'],
        'image_path'=>$filepath
    );
    print_r($data);
    $result=$connect->prepare("INSERT INTO `mir_news`(`title`,`description`,`image_path`) VALUES (?,?,?)");
    $result->execute($data);

我收到这个错误

致命错误:带有消息的未捕获异常“PDOException” 'SQLSTATE[HY093]: 无效的参数号:未定义参数' 在 C:\xampp\htdocs\miradmin\views\add_news.php:24 堆栈跟踪:#0 C:\xampp\htdocs\miradmin\views\add_news.php(24): PDOStatement->执行(数组)#1 C:\xampp\htdocs\miradmin\index.php(46): require('C:\xampp\htdocs...') #2 {main} 抛出 C:\xampp\htdocs\miradmin\views\add_news.php 在第 24 行

print_r($data) 会好的。

【问题讨论】:

    标签: php mysql pdo


    【解决方案1】:

    你只想要数组的values,而不是keys

    $result->execute(array_values($data));
    

    或者,早先对它们进行不同的定义:

    $data = array($_POST["title"], $_POST["description"], $filepath);
    //...
    $result->execute($data);
    

    【讨论】:

    • @BlessanKurien 不用担心,很高兴我能提供帮助。不要忘记接受答案!
    【解决方案2】:

    在传递$data 时尝试array_values

    $result->execute(array_values($data)); $result->执行($data);

    array_values() 返回数组中的所有值,并对数组进行数字索引。

    【讨论】:

      【解决方案3】:

      尝试在变量“$filepath”中查找值的来源?

      【讨论】:

        猜你喜欢
        • 2018-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-09
        • 2015-05-11
        相关资源
        最近更新 更多