【问题标题】:Doesn't insert data in DB不在数据库中插入数据
【发布时间】:2019-03-06 15:02:15
【问题描述】:

近 2 天我的计算机不想在我的数据库中插入数据,尝试在代码中进行大量更改但仍然无法正常工作。 (并删除了 ` - 没有任何改变)。你能建议是什么原因吗?

<?php
include '../db.php';
try {
   $stmt = $dbh->prepare(" INSERT INTO `users` (`login`,`password`) VALUES (:login, :password) ");
   $stmt->bindParam(':login', $login );      
   $stmt->bindParam(':password', $password );
   $_POST['login'] = $login;
   $_POST['password'] = $password;
   $stmt->execute(); 
} 
catch (exeption $e) { // Если ошибка - показать сообщение об ошибке
   echo $e->getMessage();
}
echo "\nPDO::errorCode(): ", $dbh->errorCode();
echo "   ";
$rows = $stmt->fetchAll();
$num_rows = count($rows);
echo $num_rows;
/*header("location:../auth.php");*/
?>

返回 PDO::errorCode(): 00000 (没问题),但它返回 0 行!可能是这个原因

还有我的 db.php 文件:

<?php
try { //Connecting to db via login and password
$user = 'mydatabases';
$pass = '1234';
$dbh = new PDO('mysql:host=localhost;dbname=dbname', $user, $pass); 
} 
catch (exeption $e) { //if any mistakes show message of error
echo $e->getMessage();
}

?>

【问题讨论】:

  • 您是否遇到错误?
  • 你在echo $e-&gt;getMessage();得到什么???
  • 从哪里定义 $login 和 $password
  • 我认为您需要在绑定它们之前定义这些变量$_POST['login'] = $login; $_POST['password'] = $password; 并更改位置。职位或分配不正确。
  • 你的作业倒退了。 $_POST['login'] = $login; 应该是 $login = $_POST['login'];。左边是新变量,右边是原始值。

标签: php pdo


【解决方案1】:

在我的数据库中有 2 个额外的列,我希望它们为空(用户注册时它们没有填充),这就是代码不起作用并且没有向我发送任何错误消息的原因

【讨论】:

    猜你喜欢
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 2016-10-21
    • 2014-07-09
    • 1970-01-01
    相关资源
    最近更新 更多