我试图在用户登录服务器后登录用户的详细信息。我试图用这个:
$conn = new PDO("mysql:host=localhost;dbname=user_login",'root','');
global $dbh;
$stmt = $dbh->prepare("INSERT INTO login_details (browser, date_time, ip_address, username) VALUES (:browser, :date_time, :ip_address, :username)");
$stmt->bindParam(':browser', $browser);
$stmt->bindParam(':date_time', $date_time);
$stmt->bindParam(':ip_address', $ip_address);
$stmt->bindParam(':username', $username);
$browser = 'one';
$value = $_SERVER["HTTP_USER_AGENT"];
$stmt->execute();
$date_time = 'one';
$value = date('l jS \of F Y h:i:s A');
$stmt->execute();
$ip_address = 'one';
$value = $_SERVER['REMOTE_ADDR'];
$stmt->execute();
$username = 'one';
$value = $name;
$stmt->execute();
很抱歉,如果我完全错了,我对此完全不了解。
由于
答案 0 :(得分:0)
在您的脚本中,您使用$conn
作为连接数据库的对象,那么为什么使用全局$dbh
。只需使用$conn
代替$dbh
。
答案 1 :(得分:0)
如另一个答案所述,您需要与您对PDO对象的调用保持一致。使用$conn
代替$dbh
,反之亦然。
您当前的代码也会执行多次SQL查询,特别是每次调用$stmt->execute()
时。在大多数情况下,您甚至还没有为绑定参数指定值。
您的$value
个变量也错过了标记。您只需将所需的值分配给bindParam
调用中命名的变量。
试试这个
$conn = new PDO("mysql:host=localhost;dbname=user_login",'root','');
$stmt = $conn->prepare("INSERT INTO login_details (browser, date_time, ip_address, username) VALUES (:browser, :date_time, :ip_address, :username)");
$stmt->bindParam(':browser', $browser);
$stmt->bindParam(':date_time', $date_time);
$stmt->bindParam(':ip_address', $ip_address);
$stmt->bindParam(':username', $username);
$browser = $_SERVER["HTTP_USER_AGENT"];
$date_time = date('l jS \of F Y h:i:s A');
$ip_address = $_SERVER['REMOTE_ADDR'];
$username = $name;
$stmt->execute();