Home >Backend Development >PHP Tutorial >我这个代码为什么提交什么数据都插入到数据的内容都一样呢?

我这个代码为什么提交什么数据都插入到数据的内容都一样呢?

WBOY
WBOYOriginal
2016-06-20 12:42:10663browse

不管提交什么数据都是插入图片里面的内容 也就是把name自身插入进去了 没有把name的值插进去 这是为什么?
我在2.php上试了一下 这样
print_r($_POST);
exit();
$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
.....
为什么还是把原来的东西插入进去了 还是没变化  这是为什么



这是1.php
 $db = new PDO('mysql:host=localhost;dbname=t1', 'root', '',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
 $rs = $db -> prepare("select * from `baidu`;");
 $rs -> execute();
 $list = $rs -> fetchAll(PDO::FETCH_ASSOC);
?>





      foreach($list as $v){
      echo $v['type'].'
';
      echo $v['name'].'
';
      echo $v['num'].'
';
      echo $v['site'].'
';
      echo $v['content'].'
';
    }
  ?>


      

          

            
            
            
            
          

          

          
      






这是2.php

$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
if($pdo->exec("INSERT INTO baidu(
type,
name,
num,
site,
content
)
VALUES ('{$_POST['select']}','{$_POST['name']}','{$_POST['num']}','{$_POST['site']}','{$_POST['content']}')"){
echo "<script>alert('发布成功');location='1.php';</script>";
}
?>


回复讨论(解决方案)

2.php 代码都是错误的  if那少右括号 
然后你mysql打印出来的数据是之前的
你这里根本就没执行成功

你的2.php错误,  你是想要插入成功之后弹出一个提示吧。

还在纠结这个问题啊。
上次不是说了,你SQL语句拼接得不对。
字符串和变量的拼接有问题,这是基础知识,你得好好补补:

$str = "This is string '". $_POST['name'] . "' some string ";

2.php 代码都是错误的  if那少右括号 
然后你mysql打印出来的数据是之前的
你这里根本就没执行成功


不少右括号啊

把if去掉,php执行顺序是从上到下,你为什么要加if ,判断结果是否插入成功也不是这么判断的吧

如果还不对,你在把所有的这些 ('{$_POST['select']}','{$_POST['name']}','{$_POST['num']}','{$_POST['site']}','{$_POST['content']}')")
post取得的值  手动写上  比如 1 2 3 4 5  ,看看是否能插入     如果还是不能,那就说明前面的
$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
$pdo->exec  这些错了,一点一点排错呗。


2.php 代码都是错误的  if那少右括号 
然后你mysql打印出来的数据是之前的
你这里根本就没执行成功


不少右括号啊
$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");if($pdo->exec("INSERT INTO baidu(type,name,num,site,content)VALUES ('{$_POST['select']}','{$_POST['name']}','{$_POST['num']}','{$_POST['site']}','{$_POST['content']}')") {echo "<script>alert('发布成功');location='1.php';</script>";}

$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
if($pdo->exec("INSERT INTO baidu(
type,
name,
num,
site,
content
)
VALUES ('{$_POST['select']}','{$_POST['name']}','{$_POST['num']}','{$_POST['site']}','{$_POST['content']}')") 
{
echo "<script>alert('发布成功');location='1.php';</script>";
}

颜色不会编辑 左括号4个 右括号3个、、、 

f($pdo->exec("INSERT INTO baidu(
type,
name,
num,
site,
content
)
VALUES ('{$_POST['select']}','{$_POST['name']}','{$_POST['num']}','{$_POST['site']}','{$_POST['content']}')") ){
少了个 ),你的程序有语法错误,不会被执行!

如果程序能正常执行,只是写入库的数据有问题,那就输出SQL语句看看是什么样的。

f($pdo->exec("INSERT INTO baidu(
type,
name,
num,
site,
content
)
VALUES ('{$_POST['select']}','{$_POST['name']}','{$_POST['num']}','{$_POST['site']}','{$_POST['content']}')") ){
少了个 ),你的程序有语法错误,不会被执行!



还是不行 

f($pdo->exec("INSERT INTO baidu(
type,
name,
num,
site,
content
)
VALUES ('{$_POST['select']}','{$_POST['name']}','{$_POST['num']}','{$_POST['site']}','{$_POST['content']}')") ){
少了个 ),你的程序有语法错误,不会被执行!


我都不知道为什么我把2.php里面alert那句话删了 为什么还是弹出来提示框来

那就是你还有个 2.php

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn