Php 将数据插入数据库PDO错误
我试图在用户登录到服务器后从他们那里获取登录详细信息。我已尝试使用此选项:Php 将数据插入数据库PDO错误,php,mysql,pdo,Php,Mysql,Pdo,我试图在用户登录到服务器后从他们那里获取登录详细信息。我已尝试使用此选项: $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,
$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();
对不起,如果我完全弄错了,我对这个完全陌生
谢谢在您的脚本中,您正在使用
$conn
作为连接到数据库的对象,那么您为什么要使用全局$dbh
。只需使用$conn
代替$dbh
,正如另一个答案中所述,您需要与对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();