试图从mysql实现mysqli。 Mysqli不工作

时间:2014-07-22 00:59:30

标签: php mysql mysqli

我正在尝试从mysql切换到mysqli,因为我已经因为使用mysql启动而感到非常悲痛。我一直在看例子,并认为我做得对。但是,我不知道。当我尝试添加打孔时,它不会添加。我只是得到一个白色的屏幕。添加打孔后没有错误消息或我请求的重定向。我编辑了该文件以隐藏一些敏感数据,但没有必要进行故障排除。我多次看过这些例子,我似乎无法弄清楚出了什么问题。使用mysql时可以很好地添加打孔。如果有人可以告诉我如何解决这个问题,我将非常感激。谢谢!

<head>
    <title>Process Punch</title>
    <body bgcolor="#9966FF">
    <link rel="icon" type="image/ico" href="favicon path"/>
</head>

<?php

define('DB_NAME', 'dbname');
define('DB_USER', 'dbuser');
define('DB_PASSWORD', 'dbpass');
define('DB_HOST', 'dhbost');

$link = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

if ($link->connect_errno > 0){
    die('Could not connect: ' .$link->connect_error);
}

$userid_value = $_POST['userid'];
$punchtype_value = $_POST['punchtype'];
$group_value = $_POST['group'];
$dept_value = $_POST['dept'];
$notes_value = $_POST['notes'];
$table = "tc_".$userid_value;
$unixtime = time();
$unixtime = $unixtime + 3600;
$date_value = date('m/d/Y h:i:s A', $unixtime);
$checkusersql = "SELECT * FROM tc_users WHERE userid = '$userid_value'";
$usercheck = $link->query($checkusersql);
if ($usercheck->num_rows) == 0) {
    echo "Sorry, " . $userid_value . " is not a valid user ID. Please try again.";
}else {
    $sql = "INSERT INTO $table (time, punchtype, groupname, dept, notes) VALUES ('$date_value','$punchtype_value', '$group_value', '$dept_value', '$notes_value')";
    $link->query($sql);
}
header( 'Location: punch path');
$link->close();
?>

2 个答案:

答案 0 :(得分:0)

两件事:

if ($usercheck->num_rows) == 0)
                        ^-- this one should be removed

有一个括号太多了。

使用($usercheck->num_rows == 0)

关于你的日期/时间问题;您使用的是m/d/Y h:i:s而不是date("Y-m-d H:i:s")

MySQL期待以格式2014-07-07 19:30:13的数字表示为例。

date("Y-m-d H:i:s A")date("Y-m-d H:i:s")也是如此,这就是为什么你会得到全零。


使用Hh :( as per the manual

  

h - 12小时格式的一小时,前导零点01到12
  H - 24小时格式的小时,前导零到00

您可以保持原样并将时间列设置为VARCHAR,但这样做会失败。

答案 1 :(得分:0)

我相信你的脚本在mysqli查询上失败了,但你没有任何方法可以知道,因为没有错误报告。试试这个,看看它显示了什么。

$checkusersql = "SELECT * FROM tc_users WHERE userid = '$userid_value'";
if (!$usercheck = $link->query($checkusersql)) {
printf("Error: %s\n", $usercheck->error);
}
if ($usercheck->num_rows == 0) {
    echo "Sorry, " . $userid_value . " is not a valid user ID. Please try again.";
}else {
    $sql = "INSERT INTO $table (time, punchtype, groupname, dept, notes) VALUES ('$date_value','$punchtype_value', '$group_value', '$dept_value', '$notes_value')";
    if (!$link->query($sql)) {
    printf("Error: %s\n", $link->error);
   }
}