我更改了以下代码:
mysql_connect('localhost','username','password');
mysql_select_db('pl') or die( "Unable to select database");
到
PDO('mysql:host=localhost;dbname=pl;charset=UTF-8', 'username', 'password');
是正确的还是我必须将它传递给变量(在PDO教程中它被传递给变量db;它的目的是什么?http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)
答案 0 :(得分:6)
修改您的代码:
PDO('mysql:host=localhost;dbname=pl;charset=UTF-8', 'username', 'password');
要:
$Connection = new PDO('mysql:host=localhost;dbname=pl;charset=UTF-8', 'username', 'password');
,您的基本查询结构将围绕您的$Connection
变量。示例:
$Query = $Connection->query("LIST TABLES");
$Results = $Query->fetchAll();
有点像:
$Query = mysql_query("LIST TABLES");
$Results = mysql_fetch_array($Query);
阅读这些手册:
Construct A connection (Like mysql_connect/mysql_select_db)
PDO Query (Like mysql_query();
答案 1 :(得分:1)
这样更好,因为如果出现问题可以捕获异常(所以,我被告知)
try {
$conn = new PDO('mysql:host=localhost;dbname=mydb', 'root', 'test', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
显然,你需要改变mydb,root和test。
现在,唯一剩下的就是在你问的时候打电话给$conn
。
请记住, 捕获异常有点像sql连接的or die(mysql_error());
部分。但是,这个会以某种方式执行,任何错误都不会显示整个文件位置,这可能是一个安全威胁。
另外,我建议你看一下这些教程,以便更多地学习: