为什么插入查询结果不显示在数据库中?

时间:2016-01-04 12:28:36

标签: php mysql pdo

$db = new PDO("mysql:host=$host;dbname=$dbname",$user,$password) ; 
$insert = $db->query("INSERT INTO register (First_name,Last_name) VALUES ('ram','shyam')") ;
if($insert) {
    echo "true" ;
} else {
    $db->errorCode() ;
    echo "false" ;
} 

它给出输出true但数据库中没有条目。

2 个答案:

答案 0 :(得分:1)

如果条目没有显示在具有相同凭据和数据库的同一主机上,并且您的查询确实有效,则驱动程序说,条目已成功插入,那么您的数据库很可能在non-autocommit mode中配置。检查此输出:

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | OFF   |
+---------------+-------+
1 row in set (0.00 sec)

您需要将其重新打开(默认)或添加COMMIT语句(使用PDO)。顺便说一句,您可以在同一连接中SELECT未提交的条目:

var_dump($db->query('select * from register')->fetchAll());

答案 1 :(得分:0)

请你试试这个

<?php
function Conect()
{
    if (!($link=mysql_connect("localhost","root","")))
    {
        echo "error to connect to database.";
        exit();
    }
    if (!mysql_select_db("database_name",$link))
    {
        echo "Error to select database.";
        exit();
    }
    return $link;
}

$link=Conect(); 
$value1=$_POST['value1'];
$value2=$_POST['value2'];
$value3=$_POST['value3'];
$query="insert into database.tablename(field1,field2,field3)".
       "values('$value1','$value2','$value3')";
$action =mysql_query($query,$link);

     if (!$action) {
       die('has not insert: ' . mysql_error());
     ?> <font color="blue" face="arial" size="4">not insert</font> <?php

     }



     ?> <font color="blue" face="arial" size="4">was insert</font> <?php

     mysql_close($link);

是一个小例子