-1

可以请一些onw解释这有什么问题......这与程序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();
}

但是数据库中没有任何内容。

indate 的 mysql db 中的数据类型是datetime

4

2 回答 2

3

这段代码有几个问题。

  1. $stmt_4在定义之前使用。
  2. $u_id并且$c_id都被定义然后不使用。
  3. 尝试在$stmt不提供参数的情况下执行。
  4. $db没有定义。
  5. $id没有定义。

如果您尝试将工作代码转换为函数,请确保函数将这些作为参数传入,它们被标记为全局或函数创建/检索它们。

于 2013-06-25T11:27:53.000 回答
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 个参数。

于 2013-06-25T11:29:04.867 回答