有些人可以解释一下这有什么问题......这对于程序性的php来说完全没问题
function foo(){
$incomingtime = date('Y-m-d H:i:s', time());
$stmt = $db->stmt_init();
$id = "Abc123" ;
$u_id = 1;
$c_id = 1;
$query = "INSERT INTO table (indate, myid, uniqueid, commonid)
VALUES (?, ?, ?, ?)";
$stmt = $db->prepare($query);
$stmt->bind_param('ssii', $incomingtime, $id, $u_id, $c_id);
$stmt->execute();
printf("Affected rows (UPDATE): %d\n", $db->affected_rows); // Always return 1
$stmt->close();
}
但数据库中没有任何内容。
mysql db for indate中的数据类型为datetime
答案 0 :(得分:3)
此代码存在多个问题。
$stmt_4
在定义之前使用。$u_id
和$c_id
都已定义,但未使用。$stmt
。$db
未定义。$id
未定义。如果您尝试将工作代码转换为函数,请确保函数将这些函数作为参数传入,将它们标记为全局或函数创建/检索它们。
答案 1 :(得分:0)
检查更改:
$query = "INSERT INTO table (indate, myid, uniqueid, commonid)
VALUES (?, ?, ?, ?)";
$stmt = $db->prepare($query);
$stmt->bind_param('ssii', $incomingtime, $id, $u_id, $c_id);
$u_id = 1;
$c_id = 1;
$stmt->execute();
为:
$u_id = 1;
$c_id = 1;
$query = "INSERT INTO table (indate, myid, uniqueid, commonid)
VALUES (CURRENT_TIMESTAMP, ?, ?, ?)"
$stmt = $db->prepare($query);
$stmt->execute(array($id, $u_id, $c_id));
注意:我删除了参数ssii
,因为在查询中没有考虑它。它只需要4个参数。