PDO准备语句和MSSQL数据库无法正常运行

时间:2016-03-07 20:32:45

标签: php sql-server database pdo

我在使用PDO在MSSQL数据库上运行准备好的查询时遇到问题。我可以连接到数据库并运行没有参数的SELECT查询,但现在我正在尝试使用一个参数运行一个简单的SELECT查询:user。但是,代码不返回任何值,尽管事实上确实存在具有该值的数据库行。这是我正在使用的代码:

$db = new PDO('dblib:host='.$dbHost.';dbname='.$dbName.';charset=utf8mb4',$dbUser, $dbPass);
$stmt = $db->prepare('SELECT * FROM customer WHERE email_address = :user ');
$stmt->bindValue(":user", $_SESSION["username"], PDO::PARAM_STR);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);

我没有收到var_dump的输出。我知道在数据库中有一个正确的行,所以我尝试了:

$stmt = $db->prepare("SELECT * FROM customer WHERE email_address = 'the@email.com'");
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);

然而仍然没有返回任何价值。我是否在使用PDO做错了什么?如果我将这个确切的查询键入它运行的查询栏中。

2 个答案:

答案 0 :(得分:1)

您忘记执行查询了。

在参数绑定之后,输入此代码:

ALTER TABLE my_table
  ALTER COLUMN geom TYPE geometry(MultiPolygon,4326) USING ST_Force2D(geom);

答案 1 :(得分:0)

好吧,我是个白痴。忘了执行查询。针对处于同样困境的人的修订代码:

BadRequest: User already exists!
at new Error (<anonymous>)
at ErrorHandler (/home/cfarmer/dev/norad/bin/lib/error.js:4:18)
at /home/cfarmer/dev/norad/routes.js:118:13
at handleCallback (/home/cfarmer/node_modules/mongodb/lib/utils.js:96:12)
at /home/cfarmer/node_modules/mongodb/lib/collection.js:1353:5
at handleCallback (/home/cfarmer/node_modules/mongodb/lib/utils.js:96:12)
at /home/cfarmer/node_modules/mongodb/lib/cursor.js:670:5
at handleCallback (/home/cfarmer/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:154:5)
at nextFunction (/home/cfarmer/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:675:5)
at /home/cfarmer/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:588:7