Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对非对象PHP/SQL调用成员函数execute()_Php_Mysql_Sql - Fatal编程技术网

对非对象PHP/SQL调用成员函数execute()

对非对象PHP/SQL调用成员函数execute(),php,mysql,sql,Php,Mysql,Sql,下面要做的是从HTML表单中获取我们想要创建的表的标题,现在我硬编码了它的值。。。但即使使用硬编码值,我也会得到以下错误。 连接到数据库致命错误:对中的非对象调用成员函数execute() 第44行的“filepath”.php <?php // Configuration $hostname = 'host'; $username = 'user'; $password = 'pas

下面要做的是从HTML表单中获取我们想要创建的表的标题,现在我硬编码了它的值。。。但即使使用硬编码值,我也会得到以下错误。 连接到数据库致命错误:对中的非对象调用成员函数execute() 第44行的“filepath”.php

    <?php

            // Configuration
            $hostname = 'host';
            $username = 'user';
            $password = 'pass';
            $database = 'dbname';

            $table = $_Post['table'];
        try {
            $conn = new PDO('mysql:host='. $hostname .';dbname='. $database, $username, $password);
    echo "Connected to database"; // check for connection
    echo $table;
    // We get the connected to database message....
$conn->exec("SET CHARACTER SET utf8");      // Sets encoding UTF-8
 // table A is going to be a var , but for now testing with a hardcoded value 
  $sql = "CREATE TABLE tableA (
  id int(8) ,
  Question varchar(170),
  AnswerA varchar(100),
  AnswerB varchar(100),
  AnswerC varchar(100),
  AnswerD varchar(100),
  A int(8),
  B int (8), 
  C int (8) , 
  D int (8)
  ) CHARACTER SET utf8 COLLATE utf8_general_ci";

  $sqlb = "INSERT INTO `DBNAME` tableA (`id`, `Question`, `AnswerA`, `AnswerB`, `AnswerC`, `AnswerD`, `A`, `B`, `C`, `D`) 
  VALUES ('1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), 
  ('2', NULL,  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), 
  ('3', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
  ('4', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
  ('5', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), 
  ('6', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), 
  ('7', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
  ('8', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), 
  ('9', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
  ('10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)";
  // lets not do it all at once eh , run a secound script to add in all the values 



 $sql->execute(); 
 $sqlb->execute(); 
 // if($conn->exec($sql) !== false) echo 'The sites table is created';  
//if($conn->exec($sqlb) !== false) echo 'We inserted some values !';  


}
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
//  }
// write code to check if we succeded in creating a table with with $, if so display an alert of of some kind
// with Javascript ....

// disabled the redirect so i could see the error message
//header ("Location: quizsubmit.html");
/* Make sure that code below does not get executed when we redirect. */
exit ;



?>

$sql
$sqlb
变量包含字符串,而不是PHP对象。它们没有
execute()
方法

您需要先准备查询,然后才能执行生成的语句对象:

$stmt = $conn->prepare($sql);
$stmtb = $conn->prepare($sqlb);

$stmt->execute();
$stmtb->execute();

$sql
$sqlb
变量包含字符串,而不是PHP对象。它们没有
execute()
方法

您需要先准备查询,然后才能执行生成的语句对象:

$stmt = $conn->prepare($sql);
$stmtb = $conn->prepare($sqlb);

$stmt->execute();
$stmtb->execute();

您正在对字符串调用
->execute()
,它应该如何工作?
您需要使用
prepare()
方法来创建语句对象。

您正在对字符串调用
->execute()
,它应该如何工作?
您需要使用
prepare()
方法来创建语句对象。

如上所述,您可以调用prepare,它返回
PDOStatement
,然后为PDO对象调用execute或只调用
exec
。 (一)

(二)


如上所述,您可以调用prepare,返回
PDOStatement
,然后调用execute,或者只调用
exec
作为PDO对象。 (一)

(二)


我也犯了同样的错误


我正在选择一个不存在的表。我的错误。

我也有同样的错误


我正在选择一个不存在的表。我的错误。

谢谢你的帮助,但那不起作用,我要休息一下,我在过去4天里一直在努力把这些都塞满感谢你的帮助,但那不起作用,我要休息一下,我在过去4天里一直在努力把这些都塞满
$pdoObj = new PDO('mysql:host='. $hostname .';dbname='. $database, $username, $password);
$pdoObj->exec($sql);