lau*_*kok 4 pdo special-characters php-5.3
我正在使用PDO进行 MySQL 数据库连接、选择、更新和删除。
\n\n但我在选择带有特殊字符的行时遇到问题,例如,我想选择带有“Judge-F\xc3\xbcrstov\xc3\xa1 Mila”的页面标题,
\n\n桌子page,
id title content\n1 Judge-F\xc3\xbcrstov\xc3\xa1 Mila xxx\nRun Code Online (Sandbox Code Playgroud)\n\nSQL,
\n\nSELECT *\nFROM page\nWHERE title = 'Judge-F\xc3\xbcrstov\xc3\xa1 Mila'\nRun Code Online (Sandbox Code Playgroud)\n\n如果我通过 phpmyadmin 查询,则返回结果。
\n\n但它0带着 PDO 返回,
$sql = ' SELECT *\n FROM page\n WHERE title = ?';\n\n$items = $connection->fetch_assoc($sql,'Judge-F\xc3\xbcrstov\xc3\xa1 Mila');\nRun Code Online (Sandbox Code Playgroud)\n\n下面是我的数据库类,
\n\nclass database_pdo\n{\n # database handler\n protected $connection = null;\n\n # make a connection\n public function __construct($dsn,$username,$password)\n {\n try \n {\n # MySQL with PDO_MYSQL \n $this->connection = new PDO($dsn, $username, $password);\n $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); \n }\n catch (PDOException $e) \n {\n # call the get_error function\n $this->get_error($e);\n }\n }\n\n # don't forget to add getter method to get $this->connection, it's just a good practice.\n public function get_connection()\n {\n return $this->connection;\n }\n\n public function fetch_assoc($query, $params = array())\n {\n try\n {\n # prepare the query\n $stmt = $this->connection->prepare($query);\n\n # if $params is not an array, let's make it array with one value of former $params\n if (!is_array($params)) $params = array($params);\n\n # execute the query\n $stmt->execute($params);\n\n # return the result\n return $stmt->fetch();\n }\n catch (PDOException $e) \n {\n # call the get_error function\n $this->get_error($e);\n }\n\n }\nRun Code Online (Sandbox Code Playgroud)\n\n我是否错过了数据库课程或其他课程中的某些内容?
\n尝试添加charset=UTF-8您的$dsn, 并更改
$this->connection = new PDO($dsn, $username, $password);
Run Code Online (Sandbox Code Playgroud)
到
$this->connection = new PDO($dsn, $username, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
Run Code Online (Sandbox Code Playgroud)
我相信这就是那个SET NAMES utf8东西,至少就我而言是这样
| 归档时间: |
|
| 查看次数: |
6471 次 |
| 最近记录: |