我正在使用p4a应用程序框架,我需要通过我之前创建的字段将行插入到我的数据库中,当用户按下提交时,数据库应该更新,因此其他新行应该能够进行等等。
我很难找到如何将数据输入到数据库中,我可以通过将值放入sql语句来轻松完成,但这对我来说完全不同,
代码是:
public function submit()
{
$location = $this->location->getNewValue();
$date = $this->date->getNewValue();
$merono = $this->merono->getNewValue();
$sql = $db->query("INSERT INTO 'meetingrooms'(location, date, merono)
VALUES
($location, $date, $merono)");
p4a_db::singleton()->newRow($sql, array($location));
$this->load();
location,date和merono都是在我在此函数之前创建的字段中设置的,它应该可以正常工作,因为我以前对登录页面做了相同的操作,所以我知道第一部分应该是获取变量。因为我以前访问过db我知道它正在连接,所以它必须与MySQL语句有关。
谢谢,
史蒂夫。
答案 0 :(得分:2)
在你的查询中,我发现你用单引号括起表名,如果要转义tableName或columnName,请改用backtick
,
INSERT INTO `meetingrooms`(location, date, merono)
VALUES ($location, $date, $merono)
但由于你的tableName不是保留字或包含任何无效字符,你可以摆脱反引号。
如果要在表上插入非数字值,请用单引号将其包装,
INSERT INTO meetingrooms (location, date, merono)
VALUES ('$location', '$date', '$merono')
答案 1 :(得分:1)
我终于弄明白了(尽管这个问题只在几分钟XD上有效)
SQL语句的开头是错误的(感谢John Woo的帮助(y))现在声明如下:
query("INSERT INTO meetingrooms(location, date, merono)
VALUES
('$location', '$date', '$merono')");
这个成功的语句允许将$ location和$ merono中的变量插入到表中,加上对语句开头的额外添加
如下:
p4a_db::singleton()->
这会调用P4A数据库扩展,在此弹出类中我无法访问,
所以现在全功能: -
public function submit()
{
$location = $this->AreaName->getNewValue();
$date = $this->date->getNewValue();
$merono = $this->merono->getNewValue();
p4a_db::singleton()->query("INSERT INTO meetingrooms(location, date, merono)
VALUES
('$location', '$date', '$merono')");
感谢您的帮助,
史蒂夫。