Php mysql绑定到参数
我是新手,想学习php,下面是从谷歌获得的代码 我不明白这行代码 这行代码是什么意思Php mysql绑定到参数,php,mysql,Php,Mysql,我是新手,想学习php,下面是从谷歌获得的代码 我不明白这行代码 这行代码是什么意思 $where=($data\u id)?'其中id=:data_id':'' 这是否意味着,如果$data\u id不为空,则设置变量$where towhere id=(参数data\u id)? 如果我想将其更改为WHERE id like(param data_id),怎么样 它只是意味着,如果参数中提供了$data\u id,它会在查询中添加WHERE子句。如果省略参数,->bindParam方法是多
$where=($data\u id)?'其中id=:data_id':''代码>
这是否意味着,如果$data\u id不为空,则设置变量$where towhere id=(参数data\u id)?
如果我想将其更改为WHERE id like(param data_id)
,怎么样
它只是意味着,如果参数中提供了$data\u id
,它会在查询中添加WHERE
子句。如果省略参数,->bindParam
方法是多余的,是的,如果需要,您可以将其更改为LIKE
,但如果需要,请不要忘记通配符。请不要手动创建JSON字符串echo'{“data”:“
,只需使用echo-JSON_-encode(数组('data'=>$listed))
@Ghost如何将其更改为类似的,它是$where=($data\u-id)“WHERE-id=:%data\u-id%:”;
?只需将占位符原封不动地放在那里,不要将通配符放在那里。下面是一个您试图实现的示例,其中已经有很多这样或那样的内容。好吧,我已经找到了它的工作。谢谢可能的重复只是意味着,如果参数中提供了$data\u-id
,它会在那里添加
如果省略参数,->bindParam
方法是多余的,如果需要,您可以将其更改为LIKE
,如果需要,请不要忘记通配符。另外,请不要手动创建JSON字符串echo'{“data”:“
,只需使用echo JSON_encode(array('data'=>$listed))
@Ghost如何将其更改为类似的,它是$where=($data\u id)?“where id=:%data\u id%”:“
”?只需将占位符原封不动地放在那里,不要将通配符放在那里。下面是一个你试图实现的示例,很多都已经在这里了。好的,我已经成功了。谢谢你可能的重复
<?php
include 'db.php';
$id = (isset($_GET['uid'])) ? $_GET['uid'] : NULL;
getById($id);
function getById($data_id) {
$where = ($data_id) ? 'WHERE id = :data_id' : '';
$sql="SELECT * from tbl_user $where ORDER BY id desc";
try {
$db = getDB();
$stmt = $db->prepare($sql);
$stmt->bindParam("data_id", $data_id);
$stmt->execute();
$listed = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
echo '{"data": ' . json_encode($listed ) . '}';
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
?>