【发布时间】:2017-06-23 10:04:32
【问题描述】:
我在查询数据库时遇到问题。我已经提供了环境,所以我不能改变。这是一个 Joomla,我正在尝试适应它以能够使用数据库。
我创建了查询,当它们是数字时,我得到了正确插入的数据,但是如果我输入一个字符串,它会返回“未知列”。
这可能是单引号或双引号以及如何解释 PHP 代码的问题,但我看不到它,我来看看是否有人可以帮忙。
这是我要添加的 PHP 代码。由 joomla 提供的 JDatabase 表达式支持。
// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
// Insert columns.
$columns = array("De", "Para");
// Insert values.
$data = $_POST['form'];
$de = $data[De];
$para = $data[Para];
$values = array($de, $para);
// Prepare the insert query.
$query
->insert($db->quoteName('referencias'))
->columns($db->quoteName($columns))
// ->values($de, $para);
->values(implode(',', $values));
// Set the query using our newly populated query object and execute it.
$db->setQuery($query);
$db->execute();
如您所见,我正在尝试使用表单的 2 个字段(列)。如果我在其中一个字段中输入“asfasd”并发布它返回的表单:
“字段列表”中的未知列“asfasd”
但如果我输入一个数字,它只会将寄存器添加到数据库中。
编辑:SQL 数据库中的数据类型为“varchar”。
提前致谢。
【问题讨论】:
-
db 中的列设置为数字?
-
@Syfer 设置为 varchar