09/10/2018, 23:17
PHP5: bindValue & bindParam
ai code php 5 và đã dùng thư viện PDO cho mysql cho em hỏi hàm bindValue và bindParam nó khác nhau thế nào ???
Và ai đã test local PHP5 trên Linux cho em hỏi (Fedora Core 5):
em đang xài FC5, sau khi em mở apache, mysql và nâng cấp php 5 rồi thì khi chạy script nó ko nhận hàm bindValue và bindParam của lớp PDO (đã đc dựng sẵn và kích hoạt trong PHP5) nhưng ở win thì lại chạy bình thường, bác nào đã chạy và cài php5 ở FC5 chỉ em với nhé Sad
Đây là link từ PHP manual về 2 hàm này Smiley
http://www.php.net/manual/en/functio...-bindvalue.php
http://www.php.net/manual/en/functio...-bindparam.php
Và ai đã test local PHP5 trên Linux cho em hỏi (Fedora Core 5):
em đang xài FC5, sau khi em mở apache, mysql và nâng cấp php 5 rồi thì khi chạy script nó ko nhận hàm bindValue và bindParam của lớp PDO (đã đc dựng sẵn và kích hoạt trong PHP5) nhưng ở win thì lại chạy bình thường, bác nào đã chạy và cài php5 ở FC5 chỉ em với nhé Sad
Đây là link từ PHP manual về 2 hàm này Smiley
http://www.php.net/manual/en/functio...-bindvalue.php
http://www.php.net/manual/en/functio...-bindparam.php
Bài liên quan
PHP 5.1 and up on Unix systems
If you're running a PHP 5.1 release, PDO and PDO_SQLITE is included in the distribution; it will be automatically enabled when you run configure. It is recommended that you build PDO as a shared extension, as this will allow you to take advantage of updates that are made available via PECL. The recommended configure line for building PHP with PDO support should enable zlib support (for the pecl installer) as well. You may also need to enable the PDO driver for your database of choice; consult the documentation for database-specific PDO drivers to find out more about that, but note that if you build PDO as a shared extension, you must build the PDO drivers as shared extensions. SQLite extension depends on PDO so if PDO is built as a shared extension, SQLite needs to be built the same way. ./configure --with-zlib --enable-pdo=shared --with-pdo-sqlite=shared --with-sqlite=shared
After installing PDO as a shared module, you must edit your php.ini file so that the PDO extension will be loaded automatically when PHP runs. You will also need to enable any database specific drivers there too; make sure that they are listed after the pdo.so line, as PDO must be initialized before the database-specific extensions can be loaded. If you built PDO and the database-specific extensions statically, you can skip this step. extension=pdo.so
Having PDO as a shared module will allow you to run pecl upgrade pdo as new versions of PDO are published, without forcing you to rebuild the whole of PHP. Note that if you do this, you also need to upgrade your database specific PDO drivers at the same time.
PHP 5.0 and up on Unix systems
PDO is available as a PECL extension from http://pecl.php.net/package/pdo. Installation can be performed via the pecl tool; this is enabled by default when you configure PHP. You should ensure that PHP was configured --with-zlib in order for pecl to be able to handle the compressed package files.
Run the following command to download, build, and install the latest stable version of PDO: pecl install pdo
The pecl command automatically installs the PDO module into your PHP extensions directory. To enable the PDO extension on Linux or Unix operating systems, you must add the following line to php.ini: extension=pdo.so
For more information about building PECL packages, consult the PECL installation section of the manual.
Thế bác bít nó khác nhau thía nào ko, em đang dùng bindValue
Có nghĩa là sau khi bind, giá trị của biến đó thay đổi thì giá trị của column đó trong câu Query cũng đổi theo (vì nó là con trỏ).
Bạn chỉ có thể sử dụng một biến là paramater trong trường hợp này!
Ví dụ:
//------ Đúng ----
$var = 'pretty woman';
$pdoStatement->bindParam(':column', $var);
$var = 'ugly woman';
$pdoStatement->execute(); // giá trị của column khi execute câu query sẽ là 'ugly woman'
//--- sai - Báo lỗi ---
$pdoStatement->bindParam(':column', 'pretty woman');
bindValue thì nó bind giá trị vào, có nghĩa là bạn có thể làm theo 2 cách trên đều được với bindValue, gì thì gì, giá trị của column đều được gán cho string 'pretty woman'
Còn cái chuyện kia thì tôi biết chết liền!
Just my 2 cents!
bác mr47 cho em xin cái nick YM có gì em hỏi
Y!m: baby_learns_to_fly