我是PHP和MySQL(以及一般的编程)的新手,我正在尝试创建一个通用的数据库处理程序类Database_Handler,它将帮助我管理插入,删除,选择,更新等基本内容.
我正在处理一个成员函数来处理插入,目前.在我的插入函数中,我想构建一个准备好的PDO插入语句并执行它.
假设在我的应用程序的某个地方,我调用了insert函数,如下所示:
$table = "books";
$cols = array('author', 'title', 'pubdate');
$values = array('Bob Smith', 'Surviving the Zombie Apocalypse', '2010');
$db_handler->insert($table, $cols, $values);
Run Code Online (Sandbox Code Playgroud)
我如何使用来自的数据$table,$cols以及$values构建准备好的PDO插入语句?这是我的第一个努力,基于"如何将数组插入到PHP和PDO的单个MySQL Prepared语句中"的答案.
public function insert($table, $cols, $values){
$numvalues = count($values);
$placeholder = array();
for($i=0; $i<$numvalues; $i++)
$placeholder[$i] = '?';
$sql = 'INSERT INTO '. $table . '(' . implode(",", $cols) . ') ';
$sql.= 'VALUES (' . implode("," $placeholder) . ')"';
$stmt = $this->dbh->prepare($sql);
$for($i=0; …Run Code Online (Sandbox Code Playgroud) 使用FQL的信息和Facebook开发人员文档中的用户表,我提出了以下代码.
//build fql string
$fql = "SELECT name, birthday_date FROM user
WHERE uid IN
(SELECT uid2 FROM friend WHERE uid1 = me())
AND strlen(birthday_date) != 0 AND substr(birthday_date,0,3)
IN ('{$currentMonth}/', '{$nextMonth}/')";
$fql.=$orderBy;
$fql.=" LIMIT " . $limit;
//query facebook
$params = array(
'method' => 'fql.query',
'query' => $fql,
'callback' => ''
);
$birthdays = $this->facebook_obj->api($params);
Run Code Online (Sandbox Code Playgroud)
$currentMonth并$nextMonth分别设置为当前月份和下个月的字符串表示形式,格式为mm.(例如"09","10"等)
这是"工作",但是我们说今天是11月29日,我在11月有20个生日的朋友,并且$limit设置为10.在这种情况下,很有可能它返回的10个生日都将在11月之前第29位.
我真正想做的是从今天开始,即本月和下一个即将到来的生日.我怎么能修改这个查询来实现呢?
谢谢!
**编辑,请参阅Shawn和I之间的评论主题以寻找可能的替代解决方案.由于没有人直接解决原始代码/问题,因此尚未接受答案.
在我正在开发的小型图书馆/研究数据库应用程序中,我有一个页面,用户可以在其中查看他们提交的所有资源.
我有三个表用于不同的资源 - 书籍,期刊和会议.表格如下所示:
mysql> desc book;
+---------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| author | varchar(255) | YES | | NULL | |
| publishedyear | char(4) | YES | | NULL | |
| title | varchar(255) | YES | | NULL | |
| edition | int(3) unsigned | YES | | NULL | …Run Code Online (Sandbox Code Playgroud)