任何人可以确认低于前两个语句都不错,最后一个是错误的:mysqli和bind_param - 可以使用哪些参数?
无效:
$sql="SELECT Code, Name FROM Country WHERE Code LIKE ? LIMIT 5";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("s", "C%");
无效:
$sql="SELECT Code, Name FROM Country WHERE Code LIKE ? LIMIT 5";
$stmt = $mysqli->prepare();
$stmt->bind_param("s", strtolower($_POST['code']));
无效(结合不仅仅是字面上的值更) :
$sql="SELECT Code, Name FROM Country ? LIMIT 5";
$stmt = $mysqli->prepare();
$stmt->bind_param("s", "WHERE Code LIKE C%");
有效期:
$sql="SELECT Code, Name FROM Country WHERE Code LIKE ? LIMIT 5";
$stmt = $mysqli->prepare();
$stmt->bind_param("s", $_POST['code']);
我在问,因为我想正确理解Mysqli Prepared Statements基本。
我还不确定我可以将哪些参数放入bind_param()
。我可以把变量,但它的值(我的第一个例子),甚至执行一些PHP函数(我的第二个例子)作为参数在bind_param()?
php.net说bool mysqli_stmt::bind_param (string $types , mixed &$var1 [, mixed &$... ])
但是,目前还不清楚我。
我最好同意你的看法,但我不是这个问题的老板。这是使用mysqli的项目。 – Haradzieniec 2013-03-13 09:51:23
对不起,我还不清楚。我已经将第四个示例添加到了我的问题中。我是对的,1-3例是无效的,唯一的第四个例子是有效的? – Haradzieniec 2013-03-13 09:59:20