我正在制作移动网络并尝试使用以下代码向我的服务器数据库发送查询:
$user="root";
$pass="";
$db = new PDO('mysql:host=localhost;dbname=the_restaurant', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $db->query('SELECT * from table_availability where table_number= :table');
$statement->execute(array(':table' => $table_number));
// Set the fetch mode
$stmt->setFetchMode(PDO::FETCH_ASSOC);
while($row = $stmt->fetch())
{
echo "<tr class=\"clickable\" data-url=\"{orders.php}\"><td><p>" . $row['dish_name']. "</p></td>";
echo "<td><p>" . $row['quantity']. "</p></td>";
echo "<td><p>" . $row['price']. "</p></td>";
echo "<td><p>" . $row['ewt']. "</p></td></tr>";
}
可以执行此查询,但我的背景图像消失了。我跟踪它,罪魁祸首是声明中的冒号。反正我有没有摆脱这个问题?还是其他选择?我需要我的UI背景。我已经尝试使用反斜杠但仍然是相同的:
$stmt = $db->query('SELECT * from table_availability where table_number= \\:table');
我正在使用jQuery mobile。有什么想法吗?
答案 0 :(得分:1)
通过查看docs,您似乎不应该使用query
进行参数化查询:
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
答案 1 :(得分:0)
这只是一个PHP.net示例,说明如何使用预编译语句,您想要的方式。请根据您的需要提供此示例
<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);
// insert one row
$name = 'one';
$value = 1;
$stmt->execute();
// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>