2013-07-11 76 views
5
<?php 
    $login = 'root'; 
    $password = 'root'; 
    $dsn = "mysql:host=localhost"; 
    $dbb = 'account'; 
    $opt = array(
    // any occurring errors wil be thrown as PDOException 
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 
    // an SQL command to execute when connecting 
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'" 
    ); 

    // Making a new PDO conenction. 
    $conn = new PDO($dsn, $login, $password,$opt); 

    $db = $conn->prepare("CREATE SCHEMA IF NOT EXISTS `?` "); 
    $db->bindParam(1, $dbb); 
    $db->execute();   

    ?> 

hoạt động bình thường nhưng tạo cơ sở dữ liệu với tên 'tài khoản' với dấu nháy đơn không ai biết cách xóa bỏ dấu nháy đơn. Tôi thử nhiều thứ nhưng nó không loại bỏ.Tạo cơ sở dữ liệu với PDO bindParam

+4

Không thể sử dụng trình giữ chỗ cho tên thực thể như tên bảng, cột và cơ sở dữ liệu – hek2mgl

+0

Tại sao bạn cần tạo cơ sở dữ liệu từ tập lệnh của mình? Ngoài tập lệnh cài đặt ứng dụng, có rất ít thứ yêu cầu điều đó. –

+0

sau đó làm thế nào để tạo một db – Pankaj

Trả lời

1

này đang làm việc:

<?php 
$login = 'root'; 
$password = 'root'; 
$dsn = "mysql:host=localhost"; 
$dbb = 'account'; 
$opt = array(
// any occurring errors wil be thrown as PDOException 
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 
// an SQL command to execute when connecting 
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'" 
); 

// Making a new PDO conenction. 
$conn = new PDO($dsn, $login, $password,$opt); 

$db = $conn->prepare("CREATE SCHEMA IF NOT EXISTS $dbb "); 
$db->execute();   

?> 

tôi đoán bạn không thể chuẩn bị cơ sở dữ liệu sử dụng bindParam

1

Theo http://www.php.net/manual/en/book.pdo.php bạn có nghĩa vụ phải lập danh sách trắng thứ như tên bảng, cột và cơ sở dữ liệu.

Hãy thử;

$db = $conn->prepare("CREATE SCHEMA IF NOT EXISTS " . $dbb); 
$db->execute(); 
+0

điều này không hoạt động .. lỗi gửi: – Pankaj

Các vấn đề liên quan