function fetchbyId($tableName,$idName,$id){
global $connection;
$stmt = mysqli_prepare($connection, 'SELECT * FROM ? WHERE ? = ?');
var_dump($stmt);
mysqli_stmt_bind_param($stmt,'s',$tableName);
mysqli_stmt_bind_param($stmt,'s',$idName);
mysqli_stmt_bind_param($stmt,'i',$id);
$stmt = mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($name,$id);
$fetchArray = array();
while($row = mysqli_stmt_fetch($stmt)){
$fetchArray[] = $row;
}
return $fetchArray;
}
テーブル名にプレースホルダを使用することはできますか?これはテーブルの列に対してのみ可能ですか?mysqlは文を準備しましたが、これは可能ですか?
それはどちらの列にもできません。それはあなたが構築しようとしている非常に役に立たない機能です。それは3単語を入力することからあなたを保存しますが、あなたのコードを読みにくくするでしょう。 –
これは '$ data = getRow(" SELECT * FROM table WHERE id =? "、$ id);' –
@Colのように実行される汎用関数です。 Shrapnel:残念ながら、このソリューション(getRow)はデータベースの抽象化を奪います。 XMLまたはオブジェクトストレージに切り替えることは、痛みを伴うでしょう... – netcoder