【发布时间】:2014-01-31 19:54:41
【问题描述】:
我目前有一个 Get 变量
$name = $_GET['user'];
我正在尝试将它添加到我的 sql 语句中,如下所示:
$sql = "SELECT * FROM uc_users WHERE user_name = ". $name;
然后运行
$result = $pdo -> query($sql);
我得到一个无效的列名。但这没有意义,因为如果我像这样手动提出请求
$sql = "SELECT * FROM uc_users WHERE user_name = 'jeff'";
我得到了列数据,只是当我将它作为获取变量输入时没有。我究竟做错了什么。我对 pdo 比较陌生。
更新: 现在我有以下内容:
$name = $_GET['user'];
和
$sql = "SELECT * FROM uc_users WHERE user_name = :name";
//run the query and save the data to the $bio variable
$result = $pdo -> query($sql);
$result->bindParam( ":name", $name, PDO::PARAM_STR );
$result->execute();
但我得到了
> SQLSTATE[42000]: Syntax error or access violation: 1064 You have an
> error in your SQL syntax; check the manual that corresponds to your
> MySQL server version for the right syntax to use near ':name' at line
> 1
【问题讨论】:
-
为什么不用 PDO 的
bindparam呢? in1.php.net/manual/en/pdostatement.bindparam.php