首頁 >後端開發 >php教程 >我这个代码为什么提交什么数据都插入到数据的内容都一样呢?

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

WBOY
WBOY原創
2016-06-20 12:42:10663瀏覽

不管提交什么数据都是插入图片里面的内容 也就是把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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn