我想创建一个简单的程序,其功能是: 用户从一个简单的表单中选择一个字母然后程序生成我的“prestashop”命名数据库中的所有元素,这些元素以这个字母开头。 我在phpmyadmin中创建了数据库,并在php和ajax中创建了代码。但我不确定这段代码是否真的能够选择以用户选择的字母开头的元素。无论如何都会发生错误。 这是我的PHP代码:
<?php
$q = intval($_GET['q']);/* 54-th row*/
$con = mysqli_connect('localhost','root','','prestashop');
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
}
mysqli_select_db($con,"prestashop");
$sql="SELECT * FROM prestashop WHERE marca LIKE '".$q."'";
$result = mysqli_query($con,$sql);
echo "<table>
<tr>
<th>Marca</th>
<th>Descrizione</th>
</tr>";
while($row = mysqli_fetch_array($result)) {/* 70-th row*/
echo "<tr>";
echo "<td>" . $row['marca'] . "</td>";
echo "<td>" . $row['descrizione'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
我是否应该改变一下以使其有效?
答案 0 :(得分:1)
嗯,首先,mysql中“like”的正确语法是:
LIKE '%foo%'
LIKE '%foo'
LIKE 'foo%'
其次,根据有关mysqli_query的PHP文档:
失败时返回FALSE。成功的SELECT,SHOW,DESCRIBE或 EXPLAIN查询mysqli_query()将返回一个mysqli_result对象。对于 其他成功的查询mysqli_query()将返回TRUE。
因此,您需要检查它返回的内容以及是否为false,例如显示一些错误。