10/10/2018, 09:57

Hỏi về lỗi: Call to undefined function mysql_create_db

Mình gặp lỗi này khi thử nghiệm với php và my sql:
<?php
$conn = mysql_connect('localhost','root', ')
or die ("Could not connect to localhost");
mysql_create_db("my_database") or
die ("Could not create database");
?>
Fatal error: Call to undefined function mysql_create_db() in C:wampwww est.php on line 4

Nếu mình sửa lại như sau thì lại có thể tạo được data base:
<?php
$conn = mysql_connect('localhost','root', ')
or die ("Could not connect to localhost");
$string = "create database my_database";
mysql_query($string) or
die(mysql_error());
?>
Mong các bạn giải thích cho mình.
Mình đang sử dụng wamp server 2.0 với các thành phần như sau: mySQL 5.1.36, php 5.3.0, apache2.2.1
mr_khi85 viết 11:57 ngày 10/10/2018
http://phpvn.org/index.php/topic,2754.0.html
freshgraduate09 viết 12:03 ngày 10/10/2018
The function mysql_create_db is deprecated. It is preferable to use mysql_query to issue a sql CREATE DATABASE statement instead.
1 ng post hỏi ở 2 nơi, 1 người thì theo rình ng kia để copy paste cái link mà mình đã reply ở forum khác
mr_khi85 viết 12:07 ngày 10/10/2018
1 ng post hỏi ở 2 nơi, 1 người thì theo rình ng kia để copy paste cái link mà mình đã reply ở forum khác
- Hỏi 2 nơi thì đúng rồi... Phải hỏi nhiều nơi mới nhanh chóng thu được kết quả chứ, chỉ cần là không hỏi lại câu hỏi đã hỏi trong diễn đàn là được mà.
- Chẳng phải là đi rình đâu. Vì trong lúc tìm kiếm với ông google thì vô tình thấy bài viết của bạn ấy ở đây... nên tiện thể copy cái link luôn.

Mà ông biết trả lời thì chạy qua đó trả lời giúp cái coi... câu hỏi của ổng làm tôi mất hơn cả ngày trời chưa tìm được câu trả lời đó... ổng hỏi ác ghê.
bachnga viết 12:05 ngày 10/10/2018
Theo tôi biết không chỉ riêng gì PHP, mà các ngôn ngữ lập trình khác, khi nâng cấp lên một phiên bản mới thì có một số hàm được khuyến cáo là không nên sử dụng. Bạn gặp lỗi deprecated khi dùng hàm thì tạm hiểu là hàm này đã xưa cũ và có thể không còn được support. Theo ý kiến cá nhân tôi thì:
+ mysql_create_db("database_name") thì chính php can thiệp sâu và MySQL
+ mysql_query("create database database_name") thì bạn gởi câu query cho MySQL thi hành.
Vậy với cách sử dụng thứ hai có vẻ an toàn cho toàn bộ hệ thống CSDL được quản lý bởi MySQL.
Có thể ý kiến của tôi sai, nhưng chắc chắc một điều là bạn phải chấp nhận sự thay đổi đó.
thuyduongcd viết 12:11 ngày 10/10/2018
From PHP.net
Note: This function will not be available if the MySQL extension was built against a MySQL 4.x client library.
Tạm hiểu là nếu php sử dụng MySQL từ 4.x trở lên thì hàm này không được phép sử dụng. Vì đó là một lỗ hổng của PHP, miếng mồi béo bở của hacker
freshgraduate09 viết 12:07 ngày 10/10/2018
mình thấy thích php và mysql ở chỗ nó đơn giản, nhưng thấy ghét nó ở chỗ khi lên version mới thì 1 số hàm bị cho là deprecated sẽ ko dùng lại được.

Mình code nhiều bên java nên để ý, nếu 1 hàm bị deprecated ở version mới vẫn có thể dùng lại được , nó chỉ phát ra 1 thông báo dạng warning thôi, chứ ko gọi là lỗi. Trong khi các thư viện của php mysql thì ôi thôi, chồng chéo, dẫm đạp lên nhau, cái sau phủ định cái trước.

Đến bao giờ php mới có lớp lang kế thừa từ gốc tới ngọn cho đàng hoàng nhỉ
mr_khi85 viết 12:04 ngày 10/10/2018
khi lên version mới thì 1 số hàm bị cho là deprecated sẽ ko dùng lại được
Uhm!!! Cho đến giờ thì mình phải chấp nhận câu trả lời đó thôi.
Điều mình vẫn không hiểu là tại sao trong "manual" của PHP 5 lẫn MySQL 5 đều có nhắc đến cài hàm này.

Cảm ơn các bạn nhiều. Chúc các bạn những ngày tốt lành và công việc luôn luôn thuận lợi.
Bài liên quan
0