我是PDO的新手,我知道使用execute你将值作为字符串发送,但是当你绑定param时你可以定义它是什么,但是没有关于我的查询总是在通过执行通过字符串发送它们时的工作那么使用bind param有什么意义呢(我只是想弄清楚它是什么)。
例如:
$insert_whatever = $database->prepare("INSERT INTO test(blah, blah1) VALUES (?, ?)");
$insert_whatever->bindparam('1', PDO::PARAM_INT);
$insert_whatever->execute();
$insert_whatever = $database->prepare("INSERT INTO test(blah, blah1) VALUES (?, ?)");
$insert_whatever->execute(array('1','1'));
答案 0 :(得分:0)
有时执行失败。例如,如果您希望LIMIT
从MySQL返回结果,那么您将需要Bind
个参数/值,而不是使用execute命令传递它们。
即
$query = $pdo->prepare("SELECT * FROM table LIMIT ?, ?");
你会这样做:
$query->bindParam("1", 1, PDO::PARAM_INT) // assuming that you want to start from 1
$query->bindParam("2", 10, PDO::PARAM_INT) // assuming that you want to stop at 10
然后执行:
$query->execute();
如果要从变量中附加整数值,则需要将其绑定为值:
$query->bindValue("1", $variable, PDO::PARAM_INT);
提示:bindValue
适用于所有人。详细了解bindParam
和bindValue
:
What is the difference between bindParam and bindValue?