Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将其转换为准备好的语句_Php_Mysql_Prepared Statement - Fatal编程技术网

Php 将其转换为准备好的语句

Php 将其转换为准备好的语句,php,mysql,prepared-statement,Php,Mysql,Prepared Statement,我有一行代码: $search = mysqli_query($mysqli, "SELECT * FROM list WHERE ID= '$name' "); 我想这样做: $example = $mysqli->prepare('SELECT * FROM list (ID) VALUES (?)'); 但问题是,我需要输入部分“mysqli\u query($mysqli,”),如何将其添加到我的第二行代码中?使用准备好的语句时,SQL语法不会改变。只需用占位符替换变量即可 $

我有一行代码:

$search = mysqli_query($mysqli, "SELECT * FROM list WHERE ID= '$name' ");
我想这样做:

$example = $mysqli->prepare('SELECT * FROM list (ID) VALUES (?)');

但问题是,我需要输入部分
“mysqli\u query($mysqli,”
),如何将其添加到我的第二行代码中?

使用准备好的语句时,SQL语法不会改变。只需用占位符替换变量即可

$statement = $mysql->prepare("SELECT * FROM list WHERE ID= ? ");
$statement->bind_param("s", $name);
$statement->execute();

我建议你也看看。@FunkFortyNinerYes@ALEX很抱歉,我删除了我的评论,以查看您是否正在检查行是否存在,然后我在Barmar的回答下看到了您的评论。请查阅副本,都在那里。不工作,什么部分不工作?然后我尝试使用第二个代码处理mysqli_num_行,而不使用prepared语句阅读有关mysqli prepared语句的教程,您无法以相同的方式读取结果。您必须使用
$statement->bind_result()
。将观察到的行为描述为“不工作”或“不工作”在提供有关所观察到的实际行为的任何有意义的信息方面实际上都是无用的。Barmar回答了所问的问题。不要乱搞
mysqli_num_rows
。只需执行一次提取,并检查是否成功。Id我们需要对行数进行计数,然后我们可以在提取循环中增加一个计数器。另外,请删除选择列表中的
*
,并显式列出要返回的表达式。如果我们只需要一个计数,我们可以在选择列表中使用count()聚合,并从获取的行中获取值。