gpt4 book ai didi

php - SHOW COLUMNS 与预准备语句和 LIKE 一起使用时返回错误

转载 作者:行者123 更新时间:2023-11-29 06:44:33 25 4
gpt4 key购买 nike

我在使用下面的 MySQL/MariaDB 查询时遇到问题,但我不知道为什么。

$field = 'some_db_field';
$field = '%' . $field . '%';

$query = $db->prepare(
" SHOW COLUMNS "
. " FROM table"
. " LIKE :fieldName"
);

$query->bindParam(':fieldName', $field, PDO::PARAM_STR);
$query->execute();

我收到以下错误:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?' at line 1' in script.php:

我做错了什么?

最佳答案

我也遇到过这个问题。

您根本无法在 SHOW COLUMN 查询上使用 PDO bindParam 函数。

我不知道为什么。我已经在文档和网络上搜索了几个小时,但找不到任何解释。

另一种方法是使用PDO::getColumnMeta

或者查询information_schema

$field = 'some_db_field';
$field = '%' . $field . '%';

$query = $db->prepare(
" SELECT * "
. " FROM INFORMATION_SCHEMA.COLUMNS "
. " WHERE table_name = 'your_table' AND column_name LIKE :fieldName "
);

$query->bindParam(':fieldName', $field, PDO::PARAM_STR);
$query->execute();
return $output;
}

与 SHOW COLUMN 相比,此方法有一个优点:您可以返回更多的列信息。示例:

| TABLE_CATALOG | TABLE_SCHEMA |  TABLE_NAME | COLUMN_NAME | ORDINAL_POSITION | COLUMN_DEFAULT | IS_NULLABLE | DATA_TYPE | CHARACTER_MAXIMUM_LENGTH | CHARACTER_OCTET_LENGTH | NUMERIC_PRECISION | NUMERIC_SCALE | DATETIME_PRECISION | CHARACTER_SET_NAME |  COLLATION_NAME | COLUMN_TYPE | COLUMN_KEY | EXTRA |                      PRIVILEGES | COLUMN_COMMENT |
|---------------|--------------|-------------|-------------|------------------|----------------|-------------|-----------|--------------------------|------------------------|-------------------|---------------|--------------------|--------------------|-----------------|-------------|------------|-------|---------------------------------|----------------|
| def | db_9_1e4841 | input_table | Agency_CODE | 1 | (null) | YES | varchar | 3 | 9 | (null) | (null) | (null) | utf8 | utf8_general_ci | varchar(3) | | | select,insert,update,references | |

关于php - SHOW COLUMNS 与预准备语句和 LIKE 一起使用时返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50101202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com