【问题标题】:no adding any record to database when i use mysql commands in php当我在 php 中使用 mysql 命令时,没有向数据库添加任何记录
【发布时间】:2015-02-26 15:58:04
【问题描述】:

我运行以下代码将新用户添加到数据库表中,但此代码无法正常工作。

<?php include ("database/configdb.php");//configuration file of pdo to database connection
if(isset($_GET['uname'])&&isset($_GET['pass'])&&isset($_GET['email'])&&isset($_GET['fname'])&&isset($_GET['lname'])){

//check username
$sql="SELECT COUNT(*) FROM users WHERE uname=:username";
$rslt=$connect->prepare($sql);
$rslt->execute(array(":username"=>$_GET['uname']));
$num=$rslt->fetchColumn();
if ($num==1) { echo "exist"; exit();}
else{
    //end check username
    $sql = "INSERT INTO users (fname,lname,uname,password,email,avatar,bdate,rdate,degree,popularity,sex,lock,lang,country,phone) VALUES(:fname1,:lname1,:uname1,:pass1,:email1,'','','','','','','','','','')";
    $result=$connect->prepare($sql);
    $query=$result->execute(array(
        ":fname1"=>$_GET['fname'],
        ":lname1"=>$_GET['lname'],
        ":uname1"=>$_GET['uname'],
        ":pass1"=>$_GET['pass'],
        ":email1"=>$_GET['email']
        ));

    if ($query){
        echo "ok"; exit();
    }
    else{
        echo "error"; exit();
    }       
}   
}
 else
 {
    echo "invalid";
 }  
 ?>

当我运行此代码时,打印的结果是“错误”。 如何解决?谢谢...

【问题讨论】:

  • 直接在数据库上运行查询时出现什么错误?
  • 您假设成功而没有考虑可能的失败。这意味着,您不会在任何地方检查错误。
  • 而不是一个无用的固定“错误”消息,为什么不让数据库告诉你发生了什么? php.net/manual/en/pdo.errorinfo.php

标签: php mysql database pdo mysqli


【解决方案1】:

您正在使用 MySQL 保留字 lock

要么用记号包裹它,要么将其重命名为其他名称。

INSERT INTO users ... sex,`lock`,...

即使您已将 '' 指定为要用于它的值,列名“lock”仍需要包含在刻度中。

检查错误会发出错误信号,放置在您的连接下:

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)

即:

$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

连接打开后。

咨询:http://php.net/manual/en/pdo.errorinfo.php 并了解真正的错误。

error reporting 添加到文件顶部,这将有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:错误报告应该只在暂存阶段完成,而不是在生产阶段。

【讨论】:

    猜你喜欢
    • 2019-04-14
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    相关资源
    最近更新 更多