【问题标题】:Invalid parameter number: parameter was not defined - PHP / MYSQL无效的参数号:未定义参数 - PHP / MYSQL
【发布时间】:2013-06-12 15:28:41
【问题描述】:

我明白了

警告:PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: 无效参数号:未定义参数

当尝试运行以下代码时,bindValuebindParam 似乎都看不出有什么问题。

class Product {

    public function productAdd($x) {
        $core = Core::getInstance(); // This part works OK
        $stmt = $core->dbh->prepare('INSERT INTO Product (Product_Name) VALUES (:product-name)');
        $stmt->bindValue(':product-name', $x, PDO::PARAM_STR);
        $stmt->execute();
    }

}

$product = new Product;
$productadd = $product->productAdd('Blue Sunglasses');

【问题讨论】:

  • 不知道是不是因为-。尝试不使用它,例如 :productName
  • 天哪?呃,是的,做到了。谢谢!!!不敢相信。我花了几个小时!!!新鲜的眼睛总是受欢迎的。

标签: php mysql pdo


【解决方案1】:

命名参数必须是以下之一:

BINDCHR     = [:][a-zA-Z0-9_]+;

将连字符更改为下划线或将其删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 2020-03-18
    • 2016-12-15
    • 2022-01-10
    • 2016-03-13
    • 1970-01-01
    相关资源
    最近更新 更多