我在查询数据库时遇到问题。我被提供了环境,所以我无法改变。而且我正在努力适应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'并在POST表单中返回:
'字段列表'中的未知列'asfasd'
但如果我输入一个数字,只需将寄存器添加到数据库中。
编辑:SQL数据库中的数据类型为'varchar'。
提前致谢。
答案 0 :(得分:1)
$values = array($de, $para);
我们假设De = 3
和Para = asd
$values_str = implode(',', $values);
$values_str
将为3','asd
$values_str = "'" . $values_str . "'"; \\<--This is missing step
现在,$values_str
将为'3','asd'
.
.
.
->values($values_str);
我不知道你为什么要通过破坏价值来创造一个字符串。但是,如果你愿意,你必须在两端附加引号。