php使用不带任何占位符的预处理语句不获取数据
我的站点正处于原型阶段。由于准备好的语句更安全&这是与mysql db对话的新方式,我决定使用它们并阅读php.net中的相关部分,但php.net中的所有示例都带有占位符,如where name=?。下面我不需要占位符,但我无法实现打印输出。我的数据库没有输出。我注意到: 注意:未定义变量:中的行。。。第16行 注意:未定义变量:中的行。。。第16行 注意:未定义变量:中的行。。。第16行 注意:未定义变量:中的行。。。第16行 我该怎么办?你能帮帮我吗。谢谢你,你好 在my index.php中 在包含的页面中php使用不带任何占位符的预处理语句不获取数据,php,mysql,mysqli,Php,Mysql,Mysqli,我的站点正处于原型阶段。由于准备好的语句更安全&这是与mysql db对话的新方式,我决定使用它们并阅读php.net中的相关部分,但php.net中的所有示例都带有占位符,如where name=?。下面我不需要占位符,但我无法实现打印输出。我的数据库没有输出。我注意到: 注意:未定义变量:中的行。。。第16行 注意:未定义变量:中的行。。。第16行 注意:未定义变量:中的行。。。第16行 注意:未定义变量:中的行。。。第16行 我该怎么办?你能帮帮我吗。谢谢你,你好 在my index.ph
从万能手册: 请注意,在调用之前,应用程序必须绑定所有列 mysqli_stmt_fetch 从第一个例子来看: /*执行语句*/ $stmt->execute; /*绑定结果变量*/ $stmt->bind_result$name$code; /*获取值*/ 而$stmt->fetch{ printf%s%s\n,$name,$code; }
您缺少的是$beyan->bind_result$kolon_baslik,$kolon_yazi;并使用这些变量而不是不存在的$row数组。谢谢,我在这个链接上找到了答案:。工作代码是:
if ($beyan = $db_baglanti->prepare($sorgum))
{
/* execute statement */
$beyan->execute();
/* bind result variables */
$beyan->bind_result($name, $code);
/* fetch values */
while ($beyan->fetch()) {
//printf ("%s (%s)\n", $name, $code)
echo $name.'<br /><br />'.$code.'<br /><br />';
}
/* close statement */
$beyan->close();
}
我了解到我必须将mysql结果绑定到变量,然后打印绑定的变量值。相关代码为:$beyan->bind_result$name,$code 这可能对你有帮助。
$sorgum = "SELECT kolon_baslik, kolon_yazi FROM tb_yazilar";
if ($beyan = $db_baglanti->prepare($sorgum))
{
/* execute statement */
$beyan->execute();
/* fetch values */
while ($beyan->fetch()) {
echo $row['kolon_baslik'].'<br /><br />'.$row['kolon_yazi'].'<br /><br />';
}
/* close statement */
$beyan->close();
}
if ($beyan = $db_baglanti->prepare($sorgum))
{
/* execute statement */
$beyan->execute();
/* bind result variables */
$beyan->bind_result($name, $code);
/* fetch values */
while ($beyan->fetch()) {
//printf ("%s (%s)\n", $name, $code)
echo $name.'<br /><br />'.$code.'<br /><br />';
}
/* close statement */
$beyan->close();
}