我在创建php脚本时遇到了麻烦,我已经创建了将实例插入数据库,但是我得到了一个简单的输出,我不知道如何解决它。 代码是:

try{

$user = 'root';

$pass = null;

$pdo = new PDO('mysql:host=localhost; dbname=divebay', $user, $pass);

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

$username = $_POST['username'];

$password = sha1($_POST['password']);

$location = %_POST['location'];

$email = $_POST['email'];

$name = $_POST['fname'] ."" . $_POST['surname'];

$check = $pdo->prepare('SELECT * FROM user WHERE username=?');

$check->bindValue(1, $username);

$check->execute();

if($check->fetch(PDO::FETCH_OBJ)){

echo"Account name already exists";

}

else{

$stmt = $pdo->prepare('INSERT INTO user(username, password, location, email, name)

VALUES(:username, :password, :location, :email, :name)');

$stmt->bindParam(':username', $username, PDO::PARAM_STR);

$stmt->bindParam(':password', $password, PDO::PARAM_STR);

$stmt->bindParam(':location', $location, PDO::PARAM_STR);

$stmt->bindParam(':email', $email, PDO::PARAM_STR);

$stmt->bindParam(':name', $name, PDO::PARAM_STR);

if($stmt->execute()){

echo"Account created";

}

else{

echo"Account could not be created";

}

}

$pdo = null;

}catch(PDOException $e){

echo $e->getMessage();

}

?>

我希望输出像"帐户创建"。 而输出我得到这个错误:

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $username =

$_POST['username']; $password = sha1($_POST['password']);

$location = %_POST['location']; $email = $_POST['email']; $name =

$_POST['fname'] ."" . $_POST['surname']; $check =

$pdo->prepare('SELECT * FROM user WHERE username=?');

$check->bindValue(1, $username); $check->execute();

if($check->fetch(PDO::FETCH_OBJ)){ echo"Account name already exists";

} else{ $stmt = $pdo->prepare('INSERT INTO user(username, password,

location, email, name) VALUES(:username, :password, :location, :email,

:name)'); $stmt->bindParam(':username', $username, PDO::PARAM_STR);

$stmt->bindParam(':password', $password, PDO::PARAM_STR);

$stmt->bindParam(':location', $location, PDO::PARAM_STR);

$stmt->bindParam(':email', $email, PDO::PARAM_STR);

$stmt->bindParam(':name', $name, PDO::PARAM_STR);

if($stmt->execute()){ echo"Account created"; } else{ echo"Account

could not be created"; } } $pdo = null; }catch(PDOException $e){ echo

$e->getMessage(); } ?>

这个脚本出错的原因是什么?

是否在您的服务器上启用了PHP?如果您访问仅包含的PHP文件会发生什么?

另外,请仔细阅读过去的问题并接受答案。您的接受率仅为14%且非常低。有些人可能因此没有给你答案。

生病了

@LiamWarnes Chewckif PDO是否启用

@David我认为它是phpinfo()给了我一堆显示版本信息等的表

上面的文件名为* .php?

@swapnesh我试图通过添加if(extension_loaded('pdo'){在try块之前使用else {echo"php未加载"来检查但是输出保持不变所以我假设php已启用?

在setAttribute之前你有一个贴身标签吗?喜欢$pdo-?>

@LiamWarnes和其他人只是为了一个查询是正确的??? $ pass = null;或者你想要$ pass =''; < - 表示空密码

看不出这会导致php代码被输出但是你好像在这里输入错误$location = %_POST['location'];而不是$

你得到输出的唯一方法是你写的:

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

如:

$pdo?>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

因为失误。

或许,但代码块是直接从记事本++中复制的,所以情况并非如此

您在浏览器中看到的输出是您在上面看到的输出,还是原始字符串响应(例如,从视图源视图)?

在%_POST['location']上你有% INSTEAD OF $

建议:

另外,我强烈建议将PDO函数包装到类中。 以下是我在每个项目中亲自使用的内容:

将其保存到自己的文件中(例如:sql.class.php)

class SqlIt{

public $Sql;

public $Response;

private $Host;

private $DBname;

private $User;

private $Pass;

public $NumResults;

public function __construct($Sql, $type, $vars){

if($vars ==""){

$vars = array();

}

try{

$DB = $this->db_connect();

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

$STH = $DB->prepare($Sql);

$doit = $STH->execute($vars);

$this->Result = $doit;

}

catch(PDOException $e){

echo $e->getMessage();

}

//find function to run

switch($type){

case 'select':

$this->select($STH);

break;

}

}

public function select($query){

$rows = $query->rowCount();

$this->NumResults = $rows;

while($row = $query->fetchObject()){

$this->Response[] = $row;

}

}

//create a separate function for connecting to DB. Private to only this class.

private function db_connect(){

$this->User = 'root';

$this->Pass = '';

$DBH = new PDO("mysql:host=localhost;dbname=divebaby", $this->User, $this->Pass);

return $DBH;

}

}

?>

然后,为了实际运行上面的语句,您只需输入以下代码:

$username = $_POST['username'];

$password = sha1($_POST['password']);

$location = $_POST['location'];

$email = $_POST['email'];

$name = $_POST['fname'] ."" . $_POST['surname'];

$getUser = new SqlIt("SELECT * FROM user WHERE username=?","select",array($username));

if($getUser){

echo 'Account name already exists';

}else{

$insertUser = new SqlIt("INSERT INTO user (username,password,location,email,name) VALUES (?,?,?,?,?)","insert",array($username,$password,$location,$email,$name));

if($insertUser){

echo 'Account created!';

}else{

echo 'Account not created.';

}

在您的一个页面的开头缺少,其中包含第一行setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);的代码

php数据回显是什么意思,关于mysql:php脚本回显部分php而不是什么意图相关推荐

  1. mysql binlog2sql闪回数据

    利用binlog2sql快速闪回误删除数据 - 别拿豆包不当干粮 转原文地址: http://blog.51cto.com/sumongodb/2046073?cid=699139 各位兄弟们,好久不 ...

  2. mysql有闪回吗_MySQL的闪回策略

    闪回原理 既然binlog以event形式记录了所有的变更信息,那么我们把需要回滚的event,从后往前回滚回去即可. 对于单个event的回滚,我们以表test.user来演示原理 mysql> ...

  3. mysql备份psd文件没有数据_两套mysql备份脚本

    数据备份其重要性无需多言,再细想一步,我们至少需要两种备份:一种逻辑备份(mysqldump生成sql文件):一种物理备份(xtrabackup可很好完成).逻辑备份在出问题时能提供更细粒度的恢复和对 ...

  4. mysql 回表 覆盖索引_MySQL 的覆盖索引与回表的使用方法

    两大类索引 使用的存储引擎:MySQL5.7 InnoDB 聚簇索引 * 如果表设置了主键,则主键就是聚簇索引 * 如果表没有主键,则会默认第一个NOT NULL,且唯一(UNIQUE)的列作为聚簇索 ...

  5. oracle闪回某个时间点的数据库,oracle11g 使用闪回查询恢复表到过去某一个时间点...

    一.新建测试表并插入数据:oracle 二.模拟表数据误删并提交:测试 三.使用闪回查询来查误删前表的数据:(表误删是在15:08分左右误删,所以在15:08分以前表的数据仍是在的):spa 四.用如 ...

  6. mysql数据库索引回表_简述 MySQL 数据库的覆盖索引与回表

    两大类索引 使用的存储引擎:MySQL5.7 InnoDB 聚簇索引 *如果表设置了主键,则主键就是聚簇索引 *如果表没有主键,则会默认第一个NOTNULL,且唯一(UNIQUE)的列作为聚簇索引 * ...

  7. mysql 如何把整列数据*10_10张图告诉你,MySQL 是如何查找数据的?

    在我们日常生活中经常会涉及到查找某个东西的场景,就比如说在一个学校里吧,我们想找出个子"最高的10个"同学,或者想查找姓名是"张三"的同学,又或者是查找学号是& ...

  8. 大数据学习总结(2021版)---Mysql基础

    这里写目录标题 第1章:数据库 1.1 数据库概述 1.2 数据库表 1.3 表数据 第2章:MySql数据库 2.1 MySql启动和停止 2.2 登录MySQL数据库 2.3 SQLyog(MyS ...

  9. Python-打印指定范围内的全部回文素数(高教社,《Python编程基础及应用》习题8-7) (10分) 回文素数是指一个数既是素数又是回文数,例如131既是素数又是回文数。

    前言 PTA程序设计类教学平台-Python作业 题目: 回文素数是指一个数既是素数又是回文数,例如131既是素数又是回文数.请实现下述两个函数,帮助测试程序完成如下功能:从键盘输入正整数N, 打印从 ...

  10. Mysql数据恢复---闪回恢复

    使用过商业数据库oracle都知道,oracle有一个闪回功能非常好用,可以非常迅速的找回删除的数据或者删除的表,这个功能在线上要谨慎使用,除非是万般无奈之下才去使用,在转向使用mysql时发现,官方 ...

最新文章

  1. 敏捷开发日常跟进系列之二:燃尽图(中)
  2. java开发企业级权限管理系统_Java开发企业级权限管理系统 视频教程
  3. Docker入门-搭建docker私有仓库
  4. 一个简单的Angular search UI实现
  5. 担当大任者的九大特征
  6. ckeditor java 上传_CKEditor粘贴图片自动上传到服务器(Java版)
  7. 查看、关闭SELinux
  8. mysql outfile 权限_MYSQL解决select ... into outfile '..' mysql写文件权限问题 Can't create/write to file...
  9. 《HarmonyOS开发 - 小凌派-RK2206开发笔记》第1章 开发环境搭建
  10. 电脑带不动虚幻引擎渲染卡顿怎么办?本文给你支招
  11. TP50 TP90 TP99 TP999 详细说明
  12. 科技日语写作 计算机科学专题,科技进步和人类日语作文
  13. python实现一个web服务器
  14. 【点云系列】 场景识别类导读
  15. newman跟newman-reporter-html安装
  16. 集合的简单实现(斗地主牌的实现 )
  17. Word、PPT、Visio里面怎么插入latex mathcal的数学字符?
  18. 在Ubuntu16.04.1上安装、配置、使用Nginx
  19. 聊聊从脑神经到神经网络
  20. 手机邮箱怎么弄_安卓手机邮箱设置教程 教您如何使用手机接收邮件

热门文章

  1. ETL、BI、MMP数据库
  2. (转)百度金融联合多方发布国内首单区块链证券化项目 发行规模超4亿
  3. Rust: ,clone,Box,Arc 的address
  4. 云原生时代,分布式系统设计必备知识图谱(内含22个知识点)
  5. 基于HBR的云上统一备份最佳实践
  6. Kafka从上手到实践 - Kafka集群:启动Kafka集群 | 凌云时刻
  7. LC3 正式升级 Open Source Summit,分论坛主题活动精彩纷呈
  8. 中铁总数据中心落户武清 项目总投资22.7亿元
  9. 【路径规划】基于matlab RRT算法求解机器人避障路径规划问题【含Matlab源码 319期】
  10. 【语音处理】基于matlab GUI语音时域频域频谱图分析【含Matlab源码 527期】