Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

criar banco de dados com pdo em php


Há dois grandes problemas aqui. A primeira é menor. Essas linhas de código nunca funcionarão:
$db->bindParam(1,`account`);
$db->bindParam(1,'$dbb'); //line 17

Isso ocorre porque ambos estão tentando chamar bindParam como uma cadeia . Isto é impossível. bindParam precisa de uma referência a uma variável. É por isso que você recebe um erro "não é possível passar o parâmetro 2 por referência":você só pode passar variáveis por referência.

Qualquer um destes, no entanto, funcionaria:
$db->bindParam(1, $dbb); // call bindParam on a variable
$db->bindValue(1, 'account'); // call bindValue on a string literal

O problema mais fundamental, no entanto, é a sua compreensão das declarações preparadas. A ideia de declarações preparadas não simples substituição de strings em outra string. É fundamentalmente sobre a separação da estrutura da consulta dos dados. O nome de uma tabela é considerado parte da estrutura da consulta, não parte dos dados. Você precisa colocar o nome da tabela na consulta original. Seu primeiro código é a maneira de fazer isso.
$db = $conn->prepare( 'CREATE SCHEMA IF NOT EXISTS account');