好的,我们假设我有一个这样的数据库
//table name is: exampleTable
_________________________
| ID | NAME | EXAMPLEDATA |
|----|------|-------------|
| 0 | TOD | a123 |
| 1 | JEF | 142b |
| 2 | MAX | c412 |
| 3 | TOD | 124d |
| 4 | TOD | e634 |
| 5 | MAX | 233f |
| 6 | MAX | g444 |
|____|______|_____________|
如何使用这样的查询获取EXAMPLEDATE
的所有值(使用预准备语句)
SELECT EXAMPLEDATA FROM exampleTable WHERE NAME = 'TOD'
并将结果存储到数组中,以便我可以像这样访问它:
$todArray[0] // equals a123
$todArray[1] // equals 124d
$todArray[2] // equals e634
我知道如何使用预准备语句来获得结果的唯一方法是使用bind_result
,但这不会取结果并将其放入数组中,如上所示。
所以这就是我尝试过的但却无法正常工作
$TOD = "TOD";
$dbCON = new mysqli(blah, blah, blah, blah);
$getData = $dbCON->prepare("SELECT `EXAMPLEDATA` FROM `exampleTable` WHERE `NAME`=?");
$getData->bind_param("s", $NAMEVAR);
$NAMEVAR = $TOD;
$getData->execute();
$getData->bind_result($todArray);
$getData->fetch();
$getData->close();
感谢任何帮助,谢谢:)
答案 0 :(得分:0)
你可以这样做:
首先,我更喜欢你将db连接从mysqli更改为PDO。
现在您可以使用PDO键入这样的查询:
<?php
$servername = "your server name";
$username = "your username";
$password = "your password";
$database = "your database name";
try {
$conn = new PDO("mysql:host=$servername;dbname=$database", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
// End of database connection
$TOD = "TOD";
$fetchdata = $conn->prepare("SELECT EXAMPLEDATA FROM exampleTable WHHERE NAME = ?");
$fetchdata->execute(array($TOD));
if($fetchdata)
{
while($fd = $fetchdata->fetch(PDO::FETCH_ASSOC))
{
echo $fd['EXAMPLEDATA']."\n";
}
}
else
{
echo "Query did not executed";
}
?>
现在,您可以通过执行以下操作将获取的数据存储在数组中:
if($fetchdata)
{
$ResultsArray = array();
while($fd = $fetchdata->fetch(PDO::FETCH_ASSOC))
{
$ResultsArray[] = $fd['EXAMPLEDATA'];
}
}
编辑:这是MYSQLI代码(未测试)
$TOD = "TOD";
$dbCON = new mysqli(blah, blah, blah, blah);
$getData = $dbCON->prepare("SELECT `EXAMPLEDATA` FROM `exampleTable` WHERE `NAME`=?");
$NAMEVAR = $TOD;
$getData->bind_param("s", $NAMEVAR);
$getData->execute();
call_user_func_array(array($mysqli_stmt_object,"bind_result"),$AnArray);
$ResultsArray = array();
while ($mysqli_stmt_object->fetch()) {
$results[] = $AnArray;
}
$getData->close();
?>
您可以在此处找到更多信息:
Mysqli - Bind results to an Array
对不起我对MYSQLI不好,希望代码可以工作,但我真的建议你开始使用PDO,它更容易。