这个MySQL查询有什么问题吗?

时间:2013-07-18 21:02:49

标签: php mysql sql

$stmt = $connection->prepare("SELECT id FROM articles WHERE position =? LIMIT 1");
$stmt-> bind_param('i',$call );
$stmt->execute();
$result = $stmt->fetch();
$oldpostid = $result;
$stmt->close(); 

我没有看到它有什么问题,但它返回1或没有。 $call已设置且为整数。我也尝试了这个:

$stmt = $connection->prepare("SELECT * FROM articles WHERE position =? LIMIT 1");
$oldpostid = $result['id'];

2 个答案:

答案 0 :(得分:3)

假设这一切正常,您还需要绑定结果变量。 mysqli_stmt_fetch返回一个布尔值:

$stmt->execute();
$stmt->bind_result($id);
$stmt->fetch();
$oldpostid = $id;

答案 1 :(得分:1)

你似乎在混合mysqli& PDO。第一行是PDO

$stmt = $connection->prepare("SELECT id FROM articles WHERE position =? LIMIT 1");

下一行是mysqli

$stmt-> bind_param('i',$call );

对于PDO应该是未命名的变量持有者Manual示例4

$stmt-> bindParam(1,$call );
$stmt->execute(); 

using array

$stmt->execute(array($call));