2014-10-20 15 views
5

Dưới đây là một mô hình MySQL trong PHP:phiên bản mysqli của mô hình mysql

$username="username"; 
$password="password"; 
$database="username-databaseName"; 

// Opens a connection to a mySQL server 
$connection=mysql_connect (localhost, $username, $password); 
if (!$connection) { 
    die("Not connected : " . mysql_error()); 
} 

// Set the active mySQL database 
$db_selected = mysql_select_db($database, $connection); 
if (!$db_selected) { 
    die ("Can\'t use db : " . mysql_error()); 
} 

// Search the rows in the markers table 
$query = some query 
$result = mysql_query($query); 

tôi đã cố gắng để thay thế hầu hết nó với một mẫu mysqli và sau đó dính vào phần truy vấn ở dưới cùng như sau:

//Database Information 
$db_host = "localhost"; //Host address (most likely localhost) 
$db_name = "username-databaseName"; //Name of Database 
$db_user = "username"; //Name of database user 
$db_pass = "password"; //Password for database user 

/* Create a new mysqli object with database connection parameters */ 
$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name); 
GLOBAL $mysqli; 

if ($mysqli->connect_errno) { 
     echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>"; 
     exit(); 
    } 

// Search the rows in the markers table 
$query = some query 
$result = mysql_query($query); 

Tuy nhiên, tôi nhận được thông báo lỗi này:

Invalid query: No database selected 

tôi đang làm gì sai?

+3

Bạn vẫn có 'mysql_query' trong * mysqli của bạn * Mã. Bạn muốn '$ mysqli-> query()'/'mysqli_query()'. Lý tưởng nhất, bạn sẽ muốn sử dụng các câu lệnh đã chuẩn bị (giả sử bạn đang truyền vào một số tham số truy vấn) thay vì các truy vấn chạy trực tiếp. Xem http://php.net/manual/mysqli.quickstart.prepared-statements.php – Phil

+0

@Phil Làm cho tinh thần, cảm ơn. –

Trả lời

2

Trước hết, bạn đang gọi mysql_query và không phải mysqli_query, như bạn dự định.

Thứ hai, kể từ khi bạn đang sử dụng các hình thức hướng đối tượng, bạn cần phải gọi mysqli_query như một phương pháp:

$result = $mysqli->query($query); 
+0

Các biểu mẫu thủ tục và OOP có thể hoán đổi cho nhau. Các hàm thủ tục chỉ đơn giản là proxy các cuộc gọi phương thức anyway. – Phil

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